V svetu bash skriptov lahko naletite na besedno zvezo set – $VARIABLE. Toda kaj to pomeni?
Najosnovnejši set – $VARIABLE se uporablja za razdelitev vrednosti spremenljivke bash v ločene besede z uporabo notranjega ločila polj (IFS) kot ločila. Na primer, če ima VARIABLE vrednost a b c, potem bi tekoči niz – $VARIABLE nastavil pozicijske parametre na a, b in c.
odjavite se iz google računa na androidu
To se na prvi pogled morda ne zdi posebej uporabno, vendar je lahko močno orodje, če ga uporabljate v pravem kontekstu. En pogost primer uporabe je obdelava argumentov ukazne vrstice, posredovanih skriptu bash. Ko zaženete skript bash, pozicijski parametri (tj. , itd.) predstavljajo argumente, posredovane skriptu. Z uporabo nabora – $VARIABLE lahko preprosto razdelite en argument na več besed, kar vam omogoča lažjo obdelavo.
Tukaj je primer, kako se lahko to uporabi:
#!/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>
Če ta skript shranite kot example.sh in ga zaženite takole:
./example.sh 'a b c'>
Izhod:
a b c>
Preglejte elemente seznama, shranjenega v spremenljivki
Drug pogost primer uporabe za nabor – $VARIABLE je zanka po elementih seznama, shranjenega v spremenljivki. Na primer:
# 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>
Izhod:
java za rezanje nizov
a b c>
Omeniti velja, da nabor – $VARIABLE deluje le, če je vrednost VARIABLE en sam niz. Če je VARIABLE matrika, boste morali uporabiti drugačen pristop. Ena od možnosti je uporaba sintakse printf '%s ' ${VARIABLE[@]}, ki razširi matriko v niz ločenih besed, od katerih je vsaka ločena z znakom nove vrstice.
Tukaj je primer, kako se lahko to uporabi:
#!/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>
Izhod:
a b c>
Zaključek
Na koncu, nastavite – $VARIABLE je uporabna funkcija bash, ki vam omogoča, da vrednost spremenljivke razdelite na ločene besede z uporabo IFS kot ločila. Uporablja se lahko za obdelavo argumentov v ukazni vrstici ali za zanko po elementih seznama, shranjenega v spremenljivki. Čeprav deluje samo z enimi nizi, obstajajo alternativni pristopi, ki jih je mogoče uporabiti z nizi. Razumevanje, kako deluje set – $VARIABLE in kdaj ga uporabiti, je lahko dragocen dodatek k vašemu kompletu orodij za skripte bash.