2015-03-25 20 views
38

I często natknąć $? $0 $1 $2 etc.... w skryptów powłoki, co wiem, jest to, że $? zwraca kod zakończenia ostatniego polecenia

echo "this will return 0" 
echo $? 

ale co inni zrobić? jak się nazywają i czy jest ich więcej? może 3 $ 4 $ 5 ...

+1

http://tldp.org/LDP/abs/html/othertypesv.html –

Odpowiedz

81

Są to argumenty pozycyjne skryptu.

Wykonywanie

./script.sh Hello World 

Uczyni

$0 = script.sh 
$1 = Hello 
$2 = World 
16

Są one nazywane Positional Parameters.

3.4.1 parametry pozycyjne

pozycyjną parametrem jest parametr oznaczony przez jedną lub więcej cyfr, inna niż pojedyncza cyfra 0. parametry pozycyjne są przypisane z argumentów przez powłokę przy wywołaniu, a może być ponownie przypisane za pomocą polecenia wbudowanego zestawu. Parametr pozycyjny N może być określany jako $ {N} lub jako $ N, gdy N składa się z pojedynczej cyfry. Parametry pozycyjne nie mogą być przypisane do instrukcji przypisania. Zestawy wbudowane set i shift służą do ustawiania i anulowania ich (patrz Polecenia wbudowane w powłokę). Parametry pozycyjne są tymczasowo zastępowane, gdy wykonywana jest funkcja powłoki (zobacz Funkcje powłoki).

Po rozszerzeniu parametru pozycyjnego składającego się z więcej niż jednej cyfry, musi on być ujęty w nawiasy klamrowe.

+0

'$' jest specjalny parametr, które zostały wyjaśnione tutaj: https://www.gnu.org/software/bash/ manual/bash.html # Parametry specjalne –