Variabilele care stochează parametrii poziționali
Un exemplu tipic al unei cochilii care utilizează parametrii poziționali este bash. Puteți utiliza bash pe Linux, BSD, macOS X și Windows 10.
Luați în considerare următoarea comandă bash. Numele comenzii este comanda mea . Linia de comandă are trei parametri: una, două și trei patru .
mycommand unul doi "trei patru"
Sfat: Parametrii poziționali sunt delimitați de un spațiu. Coaja interpretează lucrurile după spații ca parametri individuali. Dacă parametrul însuși conține un spațiu, introduceți-l în ghilimele, la fel ca în "trei patru" de mai sus.
În timp ce comanda mycommand rulează, bash oferă următoarele variabile de shell:
Numele variabilei | Valoare |
---|---|
$ cu 0 | mycommand |
$ de 1 | unu |
$ cu 2 | Două |
$ cu 3 | trei patru |
$ # | 3 |
[protejat prin e-mail] | unu doi trei patru |
$ * | unu doi trei patru |
Variabila $ 0 este setată la primul cuvânt al comenzii - numele comenzii. Această variabilă este utilă deoarece comenzile pot fi redenumite sau executate utilizând o legătură simbolică. Unele programe se comportă diferit în funcție de numele comenzii utilizate pentru a rula programul. $ 0 permite unui program să vadă ce nume de comandă la lansat.
Variabilele $ 1, $ 2 și $ 3 conțin valorile primului, al doilea și respectiv al treilea parametru. Dacă a existat un al patrulea parametru, valoarea sa ar fi plasată în variabila 4 $ . Parametrii mai mari de 9 pot fi accesați prin utilizarea unor bretele curbate în jurul numărului; de exemplu, $ {10} ar fi al zecelea parametru, iar $ {123} ar fi cel de-al 123-lea.
Variabila $ # conține numărul de parametri poziționali, excluzând $ 0.
Variabila [protejată prin e-mail] conține valoarea tuturor parametrilor poziționali, excluzând $ 0.
Variabila $ * este aceeași ca [protejată prin e-mail], cu excepția cazului în care este dublată. Atunci când este cuprins în ghilimele duble, $ * se extinde la $ 1c $ 2c $ 3c ... unde c este primul caracter al variabilei $ IFS, variabila de separare internă a câmpului bash. IFS este folosit pentru divizarea cuvintelor, iar valoarea sa implicită este "spațiu, tab sau linie nouă" - în acest caz, bash vede sfârșitul unui cuvânt și începutul următorului.
Dacă valoarea $ IFS este " _ " (un subliniere), "[email protected]" se extinde la:
unu doi trei patru
În timp ce "$ *" se extinde la:
unu doi trei patru
Exemple
Iată câteva exemple de utilizare a parametrilor poziționali în bash.
Folosind setul de comenzi încorporate, valoarea [protejată prin e-mail] poate fi modificată pentru shell-ul curent. Totul după setare - va fi înregistrat ca parametru pozițional.
set - una două "trei patru"
Acum putem itera peste aceste variabile folosind ... în :
pentru arg în [protejat prin e-mail]; faceți ecou "$ arg"; Terminat
unu doi trei patru
În bash, [e-mail protejat] este lista implicită pentru a repeta atunci când executați, astfel încât această comandă funcționează, de asemenea:
pentru arg; faceți ecou "$ arg"; Terminat
unu doi trei patru
Iterarea peste "$ *" (cu citate dublă) va furniza un șir concatenat de parametri poziționali, alături de primul caracter al lui $ IFS :
IFS = ""; pentru arg în "$ *"; faceți ecou "$ arg"; Terminat
unu doi trei patru
Pentru mai multe informații, consultați documentația pentru shell-ul de comandă bash.
Parametru, Termeni de programare