logo

Imposta – $VARIABILE in bash

Nel mondo degli script bash, potresti imbatterti nel set di frasi $VARIABLE. Ma cosa significa?

Nella sua forma più elementare, set – $VARIABLE viene utilizzato per dividere il valore di una variabile bash in parole separate, utilizzando il separatore di campo interno (IFS) come delimitatore. Ad esempio, se VARIABILE ha il valore a b c, l'esecuzione di set – $VARIABILE imposterebbe i parametri posizionali su a, b e c.

variabile javascript globale

A prima vista potrebbe non sembrare particolarmente utile, ma può essere uno strumento potente se utilizzato nel giusto contesto. Un caso d'uso comune è elaborare gli argomenti della riga di comando passati a uno script bash. Quando esegui uno script bash, i parametri posizionali (ad esempio , , ecc.) rappresentano gli argomenti passati allo script. Utilizzando set – $VARIABLE, puoi facilmente dividere un singolo argomento in più parole, consentendoti di elaborarle più facilmente.



Ecco un esempio di come potrebbe essere utilizzato:

#!/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>

Se salvi questo script come example.sh ed eseguilo in questo modo:

./example.sh 'a b c'>

Produzione:

a b c>

Passa sopra gli elementi di una lista memorizzata in una variabile

Un altro caso d'uso comune per set - $VARIABLE è quello di eseguire il loop sugli elementi di un elenco memorizzato in una variabile. Per esempio:

funzione anonima Java
# 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>

Produzione:

a b c>

Vale la pena notare che set – $VARIABLE funziona solo se il valore di VARIABLE è una singola stringa. Se VARIABLE è un array, dovrai utilizzare un approccio diverso. Un'opzione è utilizzare la sintassi printf '%s ' ${VARIABLE[@]}, che espande l'array in una serie di parole separate, ciascuna separata da un carattere di nuova riga.

Ecco un esempio di come potrebbe essere utilizzato:

#!/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>

Produzione:

a b c>

Conclusione

In conclusione, set – $VARIABLE è un'utile funzionalità bash che consente di dividere il valore di una variabile in parole separate, utilizzando IFS come delimitatore. Può essere utilizzato per elaborare argomenti della riga di comando o per eseguire il loop sugli elementi di un elenco memorizzato in una variabile. Sebbene funzioni solo con stringhe singole, esistono approcci alternativi che possono essere utilizzati con gli array. Capire come funziona set – $VARIABLE e quando usarlo può essere una preziosa aggiunta al tuo toolkit di scripting bash.