logo

Conjunto – $VARIABLE en bash

En el mundo de las secuencias de comandos bash, es posible que te encuentres con el conjunto de frases: $VARIABLE. Pero, ¿qué significa?

En su forma más básica, set – $VARIABLE se usa para dividir el valor de una variable bash en palabras separadas, usando el Separador de campo interno (IFS) como delimitador. Por ejemplo, si VARIABLE tiene el valor a b c, entonces ejecutar set – $VARIABLE establecería los parámetros posicionales en a, b y c.



java int a carbón

Puede que esto no parezca especialmente útil a primera vista, pero puede ser una herramienta poderosa cuando se utiliza en el contexto adecuado. Un caso de uso común es procesar argumentos de línea de comandos pasados ​​a un script bash. Cuando ejecuta un script bash, los parámetros posicionales (es decir, , , etc.) representan los argumentos pasados ​​al script. Al utilizar set – $VARIABLE, puede dividir fácilmente un único argumento en varias palabras, lo que le permite procesarlas más fácilmente.

A continuación se muestra un ejemplo de cómo se podría utilizar esto:

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

Si guarda este script como example.sh y ejecútelo así:

./example.sh 'a b c'>

Producción:



a b c>

Recorrer los elementos de una lista almacenados en una variable.

Otro caso de uso común para set – $VARIABLE es recorrer los elementos de una lista almacenada en una variable. Por ejemplo:

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

Producción:

patrón de diseño singleton java
a b c>

Vale la pena señalar que set – $VARIABLE solo funciona si el valor de VARIABLE es una sola cadena. Si VARIABLE es una matriz, necesitarás utilizar un enfoque diferente. Una opción es usar la sintaxis printf '%s ' ${VARIABLE[@]}, que expande la matriz en una serie de palabras separadas, cada una separada por un carácter de nueva línea.



A continuación se muestra un ejemplo de cómo se podría utilizar esto:

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

Producción:

a b c>

Conclusión

En conclusión, set – $VARIABLE es una función bash útil que le permite dividir el valor de una variable en palabras separadas, utilizando IFS como delimitador. Se puede utilizar para procesar argumentos de línea de comandos o para recorrer los elementos de una lista almacenada en una variable. Si bien solo funciona con cadenas individuales, existen enfoques alternativos que se pueden usar con matrices. Comprender cómo funciona set – $VARIABLE y cuándo usarlo puede ser una valiosa adición a su kit de herramientas de scripting bash.