Jak obsługiwać argumenty wiersza poleceń w Bash?

Jak obsługiwać argumenty wiersza poleceń w Bash?

W Linux używamy argumentów wiersza polecenia jako wejścia dla skryptu Bash. Bash może sekwencyjnie brać te argumenty wiersza poleceń i analizować je jako opcję. Te argumenty pozwalają dynamicznie wpływać na działania i wyjście skryptu.

Możesz skonfigurować te argumenty inaczej, aby wpływać na wejście i wyjście. Dlatego niezbędne jest obsługa argumentów wiersza poleceń w BASH, ale wielu nowych użytkowników musi się nauczyć, jak to zrobić. Tak więc w tym przewodniku wyjaśnimy różne sposoby obsługi argumentów wiersza poleceń w Bash.

Jak obsługiwać argumenty wiersza poleceń w Bash?

Istnieją różne sposoby obsługi argumentów wiersza poleceń w Bash, więc spójrzmy na nie, aby uzyskać krótkie informacje:

Funkcja getopt

Funkcja getopt jest przydatna, ponieważ zapewnia opcje i składnię do definiowania i analizowania argumentów w Bash. Jest to wbudowana funkcja Linux, której można użyć podczas tworzenia pliku bazy danych lub raportu w określonym formacie na podstawie argumentów. Funkcja getopt pomaga przeanalizować krótkie argumenty wiersza poleceń, ponieważ istnieją dwa rodzaje argumentów:

  • Krótkie argumenty: Są to argumenty jednoznadkowe, po których następuje łącznik. Na przykład -a, -l, -h itp., to kilka przykładów pojedynczych argumentów.
  • Długie argumenty: Są to wielobarowe argumenty, po których następuje podwójny hyfen. Istnieją różne przykłady długich argumentów, takie jak -All, -list, -Help itp.

Weźmy przykład, w którym obsługujemy argumenty wiersza poleceń za pomocą narzędzia GetOpt. Stworzyliśmy skrypt bash o nazwie „getopt.sh ”, który zawiera następujące informacje:

!/bin/bash
podczas gdy getopts „A: B: C: D:” Szczegóły; Do
sprawa „$ detale” w
A)
echo „Nazwa obywatela to $ optarg” ;;
B)
echo „Citizen ID to $ optarg” ;;
C)
echo „miejsce urodzenia to $ optarg” ;;
D)
echo „Zawód to $ optarg” ;;
*)
wyjście 1 ;;
esac
zrobione
Shift „$ (($ optind -1))”
Jeśli [ ! -z 1 $]; Następnie
echo „Status cywilny 1 USD”
w przeciwnym razie
echo „bez wpisów”
Wyjście 1
fi
Jeśli [ ! -z 2 USD]; Następnie
echo „członków rodziny 2 USD”
fi

Teraz wykonajmy skrypt z wymaganymi argumentami na wejściu:

Jak widać na powyższym obrazie, uruchamiamy skrypt tylko z funkcjami getopt, a następnie dodajemy normalne argumenty, aby uzyskać pełny wynik.

Za pomocą flag

Flagi to tylko pojedyncze znaki poprzedzone Hyphens (-). Kiedy przekazujemy argumenty za pomocą funkcji getopt, używamy flag. -a, -B, -c to kilka przykładów flag. Na przykład skrypt wymaga nazwy obywatela, id, miejsca, wieku i zawodu. Stąd użyliśmy flag J, K, L, M, N, do zdefiniowania imienia, id, miejsca, miejsca, wieku i zawodu:

#!/bin/bash
Podczas gdy getopts j: k: l: m: n: flag_info
Do
case "$ flag_info" w

  1. j) Citizenname = $ optarg ;;

  2. k) Citizenid = $ optarg ;;

  3. l) miejsce = $ optarg ;;

  4. m) wiek = $ optarg ;;

  5. n) okupacja = $ optarg ;;


esac
zrobione
Echo „Oto wprowadzone szczegóły:”
Echo „Nazwa obywatela: $ Citizenname”;
Echo „Citizen ID: $ Citizenid”;
echo „miejsce: $ miejsce”;
Echo „Wiek: $ wiek”;
Echo „Okupacja: $ zawód”;

Skrypt da następujący wynik w terminalu:

.//

Korzystanie z $@ z pętlami

Zmienna „$@” to nic innego jak tablica wszystkich argumentów wejściowych. Możemy przekazać dowolną liczbę danych wejściowych za pomocą zmiennej „$@”. Możesz użyć tej zmiennej jako pętli do iteracji za pomocą argumentów. Zmienna „$@” przydaje się wtedy; Nie znasz rozmiaru wejściowego i nie możesz przyjmować argumentów pozycyjnych. Dlatego możesz użyć „$@”, zamiast definiować funkcję getopt wielokrotnie. Oto przykład używania pętli i $@ razem w skrypcie:

#!/bin/bash
num = („$@”)
Jeśli [$# -GT 1]
Następnie
add = $ (($ num [0]+$ num [1])))
Echo „Dodanie wszystkich liczb to: $ Dodaj”
subtraction = $ (($ num [0]-$ num [1]-$ num [2])))))
Echo „Odejmowanie liczb to: $ Odejmowanie”
mnożyć = $ (($ num [0]*$ num [1]*$ num [2]))))
Echo „Mnożenie liczb to: $ mnożenie”
Division1 = $ (($ num [0]/$ num [1])))
Echo „Wydział $ num [0] i $ num [1] to: $ dision1”
Division2 = $ (($ num [1]/$ num [2])))
echo „Division of $ num [1] i $ num [2] to: $ Division2”
Division3 = $ (($ num [0]/$ num [2])))
echo "Division of $ NUM [0] i $ num [2] to: $ Division2"
fi

Powyższy skrypt wykonuje różne obliczenia arytmetyczne na podstawie argumentów wiersza poleceń. Na przykład wprowadziliśmy 50, 35 i 15 jako wejście:

Za pomocą parametrów pozycji

Możesz uzyskać dostęp do parametrów pozycji, ponieważ najpierw uzyskują dostęp do 1 USD, a następnie 2 USD i tak dalej. Na przykład utwórzmy skrypt, który odczytuje nazwę jako pierwszy argument, a następnie miasto jako drugi. Jeśli jednak najpierw zdasz miasto, a następnie nazwę, uważa to nazwę za miasto i odwrotnie. Weźmy głębsze zanurzenie się w następującym skrypcie, aby zrozumieć tę koncepcję:

#!/bin/bash
Echo „Oto wprowadzone szczegóły”
Echo „Nazwa 1 USD”
echo „miasto 2 USD”

Musisz dodać nazwę i miasto w momencie wykonywania skryptu w terminalu:

Owinięcie

To wszystko, co musisz wiedzieć o metodach obsługi argumentów wiersza poleceń w Bash. Wyjaśniliśmy różne podejścia, które możesz wypróbować z odpowiednimi przykładami. Istnieją różne polecenia, jeśli chcesz dodać argumenty w skrypcie. Więc upewnij się, że odwiedzisz Linuxhint, aby dowiedzieć się więcej o nich.