logo

Sett – $VARIABLE i bash

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.