Ce este un parametru pozițional?

Un parametru pozițional este un argument specificat pe linia de comandă, folosit pentru lansarea procesului curent într-un shell. Valorile parametrilor de poziție sunt stocate într-un set special de variabile menținute de shell.

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 variabileiValoare
$ cu 0mycommand
$ de 1unu
$ cu 2Două
$ cu 3trei 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