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

Jak Obslugiwac Argumenty Wiersza Polecen W Bash



W Linuksie używamy argumentów wiersza poleceń jako danych wejściowych dla skryptu bash. Bash może pobierać te argumenty wiersza poleceń sekwencyjnie i analizować je jako opcję. Argumenty te umożliwiają dynamiczne wpływanie na działania i wyniki skryptu.

Możesz skonfigurować te argumenty inaczej, aby wpływać na dane wejściowe i wyjściowe. Dlatego obsługa argumentów wiersza poleceń w bashu jest niezbędna, ale wielu nowych użytkowników musi się tego nauczyć. Dlatego w tym przewodniku wyjaśnimy różne sposoby obsługi argumentów wiersza poleceń w bashu.







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

Istnieją różne sposoby obsługi argumentów wiersza poleceń w Bash, więc przyjrzyjmy się im, aby uzyskać krótkie informacje:



Funkcja getopt



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





  • Krótkie argumenty: Są to argumenty jednoznakowe, po których następuje łącznik. Na przykład -a, -l, -h itd. to kilka przykładów pojedynczych argumentów.

  • Długie argumenty: Są to wieloznakowe argumenty, po których następuje podwójny łącznik. Istnieje wiele przykładów długich argumentów, takich jak –all, –list, –help itp.

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



!/ kosz / grzmotnąć

podczas gdy getopty 'A:B:C:D:' Detale; robić

walizka ' $szczegóły ' w

A )

Echo „Imię obywatela to $OPTARG ' ;;

B )

Echo „Dowód osobisty jest $OPTARG ' ;;

C )

Echo „Miejsce urodzenia jest $OPTARG ' ;;

D )

Echo „Zawód jest $OPTARG ' ;;

* )

Wyjście 1 ;;

esac

Gotowe

Zmiana ' $(($OPCJA -1) )'



jeśli [ ! -z 1 $ ] ; następnie

Echo „Stan cywilny 1 $”

w przeciwnym razie

Echo „Brak wpisów”

Wyjście 1

być



jeśli [ ! -z 2 dolary ] ; następnie

Echo „Członkowie rodziny 2 dolary”

być

Teraz wykonajmy skrypt z wymaganymi argumentami na wejściu:

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

Używanie flag

Flagi to nic innego jak pojedyncze znaki poprzedzone myślnikami (-). Kiedy przekazujemy argumenty za pomocą funkcji getopt, używamy flag. -a, -b, -c to kilka przykładów flag. Na przykład scenariusz wymaga imienia i nazwiska obywatela, jego identyfikatora, miejsca, wieku i zawodu. Dlatego użyliśmy flag j, k, l, m, n, aby jednocześnie określić nazwisko obywatela, identyfikator, miejsce zamieszkania, wiek i zawód:

#!/bin/bash

Podczas gdy getopty j:k:l:m:n: flaga_informacje

robić

walizka ' ${flag_info} ' w
< ol >
< że > j ) nazwisko obywatela = ${OPTARG} ;; że >
< że > k ) identyfikator obywatela = ${OPTARG} ;; że >
< że > l ) miejsce = ${OPTARG} ;; że >
< że > m ) wiek = ${OPTARG} ;; że >
< że > n ) zawód = ${OPTARG} ;; że >
ol >
esac

Gotowe

Echo „Oto wprowadzone dane:”

Echo „Nazwisko obywatela: $nazwa obywatela ' ;

Echo „Identyfikator obywatela: $obywatel ' ;

Echo 'Miejsce: $miejsce ' ;

Echo 'Wiek: $wiek ' ;

Echo 'Zawód: $zawód ' ;

Skrypt zwróci następujący wynik w terminalu:

. /< scenariusz > .cii -j Danny'ego - k 476 -l Toronto -m 25 -n Autor

Za pomocą [chroniony e-mail] Z Pętlami

„ [chroniony e-mail] ” to nic innego jak tablica wszystkich argumentów wejściowych. Możemy przekazać dowolną liczbę wejść za pomocą „ [chroniony e-mail] ' zmienny. Możesz użyć tej zmiennej jako pętli do iteracji argumentów. „ [chroniony e-mail] ” zmienna przydaje się wtedy; nie znasz rozmiaru wejściowego i nie możesz przyjąć argumentów pozycyjnych. Dlatego możesz użyć opcji „ [chroniony e-mail] ” zamiast ciągłego definiowania funkcji getopt. Oto przykład użycia pętli i [chroniony e-mail] razem w skrypcie:

#!/bin/bash

na jednego = ( “$ @ )



jeśli [ $# -gt 1 ]

następnie



Dodaj = $ ( ( ${liczba[0]} + ${num[1]} ) )

Echo „Dodawanie wszystkich liczb to: $dodaj '



odejmowanie = $ ( ( ${liczba[0]} - ${num[1]} - ${liczba[2]} ) )

Echo „Odejmowanie liczb to: $odejmowanie '



zwielokrotniać = $ ( ( ${liczba[0]} * ${num[1]} * ${liczba[2]} ) )

Echo „Mnożenie liczb to: $ pomnóż '



dywizja1 = $ ( ( ${liczba[0]} / ${num[1]} ) )

Echo „Podział ds ${liczba[0]} oraz ${num[1]} jest: $dział1 '



dywizja2 = $ ( ( ${num[1]} / ${liczba[2]} ) )

Echo „Podział ${num[1]} oraz ${liczba[2]} jest: $podział2 '



podział3 = $ ( ( ${liczba[0]} / ${liczba[2]} ) )

Echo „Podział ${liczba[0]} oraz ${liczba[2]} jest: $podział2 '



być

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

Korzystanie z parametrów pozycyjnych

Możesz uzyskać dostęp do parametrów pozycyjnych, ponieważ najpierw uzyskują dostęp do 1 $, następnie 2 $ i tak dalej. Na przykład stwórzmy skrypt, który odczytuje nazwę jako pierwszy argument, a następnie miasto jako drugi. Jeśli jednak najpierw przejdziesz do miasta, a następnie do nazwy, wówczas nazwa zostanie uznana za miasto i odwrotnie. Przyjrzyjmy się bliżej poniższemu skryptowi, aby zrozumieć tę koncepcję:

#!/bin/bash

Echo „Oto wprowadzone dane”

Echo „nazwisko $1”

Echo „miasto 2 dolary”

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

Podsumowanie

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