Bash-skriptien maailmassa saatat kohdata lausejoukon – $VARIABLE. Mutta mitä se tarkoittaa?
Kaikkein perusjoukkoa – $VARIABLE käytetään jakamaan bash-muuttujan arvo erillisiksi sanoiksi käyttämällä erottimena IFS-merkkiä (Internal Field Separator). Jos esimerkiksi MUUTTUJAlla on arvo a b c, juokseva setti – $MUUTTUJA asettaa paikkaparametrit arvoiksi a, b ja c.
kaunein hymy maailmassa
Tämä ei ehkä vaikuta ensi silmäyksellä erityisen hyödylliseltä, mutta se voi olla tehokas työkalu, kun sitä käytetään oikeassa yhteydessä. Yksi yleinen käyttötapa on käsitellä bash-skriptille välitettyjä komentoriviargumentteja. Kun suoritat bash-komentosarjan, sijaintiparametrit (esim. , jne.) edustavat komentosarjalle välitettyjä argumentteja. Käyttämällä set - $VARIABLE -toimintoa voit helposti jakaa yhden argumentin useiksi sanoiksi, jolloin voit käsitellä niitä helpommin.
Tässä on esimerkki siitä, kuinka tätä voidaan käyttää:
#!/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>
Jos tallennat tämän skriptin nimellä example.sh ja suorita se näin:
./example.sh 'a b c'>
Lähtö:
a b c>
Kierrä muuttujaan tallennetun luettelon elementit
Toinen yleinen joukon – $VARIABLE käyttötapaus on silmukka muuttujaan tallennetun listan elementtien yli. Esimerkiksi:
# 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>
Lähtö:
poista viimeinen commit git
a b c>
On syytä huomata, että joukko - $MUUTTAJA toimii vain, jos VARIABLE-arvo on yksi merkkijono. Jos VARIABLE on taulukko, sinun on käytettävä erilaista lähestymistapaa. Yksi vaihtoehto on käyttää printf '%s ' ${VARIABLE[@]} syntaksia, joka laajentaa taulukon sarjaksi erillisiä sanoja, joista jokainen erotetaan uudella rivimerkillä.
Tässä on esimerkki siitä, kuinka tätä voidaan käyttää:
#!/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>
Lähtö:
a b c>
Johtopäätös
Lopuksi, set – $VARIABLE on hyödyllinen bash-ominaisuus, jonka avulla voit jakaa muuttujan arvon erillisiin sanoihin käyttämällä IFS:ää erottimena. Sitä voidaan käyttää komentoriviargumenttien käsittelemiseen tai muuttujaan tallennetun luettelon elementtien silmukan ylitse. Vaikka se toimii vain yksittäisten merkkijonojen kanssa, on olemassa vaihtoehtoisia lähestymistapoja, joita voidaan käyttää taulukoiden kanssa. Ymmärtäminen, kuinka set – $VARIABLE toimii ja milloin sitä kannattaa käyttää, voi olla arvokas lisä bash-skriptityökalupakettiin.