I en verden av bash-skripting kan du komme over setningssettet - $VARIABLE. Men hva betyr det?
På sitt mest grunnleggende sett – $VARIABLE brukes til å dele verdien av en bash-variabel i separate ord, ved å bruke Internal Field Separator (IFS) som skilletegn. For eksempel, hvis VARIABLE har verdien a b c, vil kjøresett – $VARIABLE sette posisjonsparametrene til a, b og c.
streng til int konvertering i java
Dette virker kanskje ikke spesielt nyttig ved første øyekast, men det kan være et kraftig verktøy når det brukes i riktig sammenheng. En vanlig brukssak er å behandle kommandolinjeargumenter som sendes til et bash-skript. Når du kjører et bash-skript, representerer posisjonsparametrene (dvs. , , etc.) argumentene som sendes til skriptet. Ved å bruke set – $VARIABLE kan du enkelt dele et enkelt argument i flere ord, slik at du lettere kan behandle dem.
Her er et eksempel på hvordan dette kan brukes:
#!/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>
Hvis du lagrer dette skriptet som example.sh og kjør det slik:
./example.sh 'a b c'>
Produksjon:
a b c>
Sløyfe over elementene i en liste som er lagret i en variabel
Et annet vanlig brukstilfelle for sett – $VARIABLE er å gå over elementene i en liste som er lagret i en variabel. For eksempel:
shreya ghoshal
# 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>
Produksjon:
a b c>
Det er verdt å merke seg at settet – $VARIABLE fungerer bare hvis verdien av VARIABLE er en enkelt streng. Hvis VARIABLE er en matrise, må du bruke en annen tilnærming. Ett alternativ er å bruke printf '%s ' ${VARIABLE[@]}-syntaksen, som utvider arrayet til en serie separate ord, hver atskilt med et nytt linjetegn.
Her er et eksempel på hvordan dette kan brukes:
#!/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>
Produksjon:
a b c>
Konklusjon
Som konklusjon, sett – $VARIABLE er en nyttig bash-funksjon som lar deg dele verdien av en variabel i separate ord, ved å bruke IFS som skilletegn. Den kan brukes til å behandle kommandolinjeargumenter eller til å gå over elementene i en liste som er lagret i en variabel. Selv om det bare fungerer med enkeltstrenger, er det alternative tilnærminger som kan brukes med matriser. Å forstå hvordan satt – $VARIABLE fungerer og når den skal brukes kan være et verdifullt tillegg til bash-skriptverktøysettet ditt.