En este artículo, veremos el comando SET en bash scripting.
Establecer comando: se utiliza para establecer o desactivar indicadores y configuraciones específicos (determina el comportamiento del script y ayuda a ejecutar las tareas sin ningún problema) dentro del entorno de shell. Se puede usar para cambiar o mostrar los atributos y parámetros del shell.
Sintaxis:
set -options arguments
El comando set admite las siguientes opciones:
Opción | Descripción |
---|---|
-a | se usa para marcar variables que se crean o modifican o se crean para exportar. |
-b | utilizar para notificar la terminación del trabajo. |
-mi | use para salir cuando el comando sale con un estado distinto de cero. |
-F | deshabilita la generación de nombres de archivo conocida como globbing |
-h | Guarda la ubicación del comando donde se buscó. |
-k |
Coloca todos los argumentos de asignación en la variable de entorno de un comando. Excepción: excluye todos los argumentos que preceden al nombre del comando. |
-metro | Permite el control de trabajos. |
-norte | Se utiliza para leer los comandos. |
-o | Se utiliza para nombrar la opción. |
-pags |
Deshabilita el procesamiento del archivo ‘$ENV’ y también importa las funciones de shell. Activado: cuando las identificaciones de usuario reales y efectivas no coinciden. |
-t | Se utiliza para salir del comando después de ejecutar un solo comando |
-tu | Trata la variable no configurada como un error durante la sustitución |
-v | Imprime las líneas de entrada del shell. |
-X | Imprime los comandos y sus argumentos en la misma secuencia en que se ejecutaron. |
-B | Realiza la expansión Brace por la concha |
-C | No permite que se sobrescriban los archivos regulares existentes. |
-MI | se usa cuando las funciones de shell heredan la trampa ERR |
-H | Habilita la sustitución del historial de estilo. Está activado de forma predeterminada. |
-PAGS | se usa cuando durante la ejecución del comando no queremos seguir los enlaces simbólicos. |
-T | establezca esta bandera, esto ayuda a las funciones de shell a heredar la trampa DEBUG |
Para una demostración del uso del comando set, usemos algún comando set.
Establecer comando -x
Esta opción imprime los comandos en la secuencia a medida que se ejecutan o se usa principalmente para realizar una depuración de secuencias de comandos.
Código:
set -x echo Hello echo Romy
Producción:
bar hello Romy + echo bar + echo hello + echo Romy
Podemos ver los comandos que se imprimen después de la ejecución del comando con el signo ‘+’.
Establecer comando -e
Termina la ejecución cuando se produce el error.
Código:(sin conjunto -e)
echo Hello foo echo Romy
Producción:
Hello Romy main.sh: line 14: foo: command not found
‘foo’ es un comando inexistente pero bash aún ejecutó la tercera línea después de encontrar el error en la segunda línea. Podemos usar el comando set para detener la terminación.
Código:(con conjunto -e)
set -e echo Hello foo echo Romy
Producción:
Hello main.sh: line 15: foo: command not found
Podemos ver que la tercera línea no se imprime porque la ejecución finalizó después de la segunda línea.
Comandos canalizados
El comando Set -e no funciona con comandos canalizados.
Ejemplo:
set -e foo | echo " This is the piped command" echo "executed"
Producción:
This is the piped command executed main.sh: line 3: foo: command not found
Podemos ver que se está ejecutando la tercera línea, en lugar de terminar la ejecución después de la segunda línea.
Para superar este problema, tenemos que usar ‘set -eo pipefail’
Establecer -eo pipefail
Ejemplo:
set -eo pipefail foo | echo " This is the piped command" echo "executed"
Producción:
This is the piped command main.sh: line 13: foo: command not found
Establecer parámetros posicionales usando el comando set
Se puede utilizar para asignar valores a parámetros posicionales. Posición del valor al que se hace referencia como ${N} donde N denota la posición del parámetro.
El $1 es el primer parámetro posicional después del comando. El valor de $2 es el segundo parámetro, y así sucesivamente.
Ejemplo:
set apple mango orange guava echo $1 echo $2 echo $3 echo $4
Producción:
apple mango orange guava
Parámetros posicionales no establecidos
Para desarmar el parámetro posicional, ejecute el comando set seguido de dos guiones (set –).
Ejemplo:
set apple mango orange guava set -- echo $1 echo $2 echo "Hello"
Producción:
Hello
Podemos ver que no se imprime nada correspondiente a los dos primeros comandos para imprimir parámetros posicionales.
Publicación traducida automáticamente
Artículo escrito por romy421kumari y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA