logo

Set – $VARIABLE în bash

În lumea scripturilor bash, este posibil să întâlniți setul de fraze – $VARIABLE. Dar ce înseamnă?

Cel mai elementar, set – $VARIABLE este folosit pentru a împărți valoarea unei variabile bash în cuvinte separate, folosind Separatorul de câmp intern (IFS) ca delimitator. De exemplu, dacă VARIABLE are valoarea a b c, atunci rularea set – $VARIABLE ar seta parametrii de poziție la a, b și c.



tipuri de bucla for

Acest lucru poate să nu pară deosebit de util la prima vedere, dar poate fi un instrument puternic atunci când este utilizat în contextul potrivit. Un caz obișnuit de utilizare este procesarea argumentelor din linia de comandă transmise unui script bash. Când rulați un script bash, parametrii poziționali (adică , etc.) reprezintă argumentele transmise scriptului. Folosind set – $VARIABLE, puteți împărți cu ușurință un singur argument în mai multe cuvinte, permițându-vă să le procesați mai ușor.

Iată un exemplu despre cum ar putea fi utilizat:

#!/bin/bash # Set the value of VARIABLE to the first command-line argument VARIABLE='' # Split the value of VARIABLE into separate words set - $VARIABLE # Loop over the words for word in '$@'; do echo '$word' done>

Dacă salvați acest script ca example.sh și rulați-l astfel:

./example.sh 'a b c'>

Ieșire:



a b c>

Buclă peste elementele unei liste stocate într-o variabilă

Un alt caz de utilizare obișnuit pentru set – $VARIABLE este să faci bucla peste elementele unei liste stocate într-o variabilă. De exemplu:

# Set the value of VARIABLE to 'a b c' VARIABLE='a b c' # Split the value of VARIABLE into separate words set - $VARIABLE # Loop over the words for word in '$@'; do echo '$word' done>

Ieșire:

a b c>

Merită remarcat că setul – $VARIABLE funcționează numai dacă valoarea VARIABLE este un singur șir. Dacă VARIABLE este o matrice, va trebui să utilizați o abordare diferită. O opțiune este să utilizați sintaxa printf „%s ” ${VARIABLE[@]}, care extinde matricea într-o serie de cuvinte separate, fiecare separată de un nou caracter de linie.



Iată un exemplu despre cum ar putea fi utilizat:

ce este trimiterea directorului
#!/bin/bash # Set the value of VARIABLE to an array containing 'a', 'b', and 'c' VARIABLE=('a' 'b' 'c') # Expand the array into a series of separate words set - $(printf '%s
' '${VARIABLE[@]}') # Loop over the words for word in '$@'; do echo '$word' done>

Ieșire:

a b c>

Concluzie

În concluzie, set – $VARIABLE este o caracteristică bash utilă care vă permite să împărțiți valoarea unei variabile în cuvinte separate, folosind IFS ca delimitator. Poate fi folosit pentru a procesa argumente din linia de comandă sau pentru a trece în buclă elementele unei liste stocate într-o variabilă. Deși funcționează doar cu șiruri de caractere individuale, există abordări alternative care pot fi utilizate cu matrice. Înțelegerea modului în care funcționează set – $VARIABLE și când să îl utilizați poate fi un plus valoros la setul dvs. de instrumente de scripting bash.