El comando SET de Linux es un comando de shell incorporado que le permite mostrar o configurar las variables de shell y entorno. En esta guía, cubrimos el comando establecer y demostramos las diversas formas en que se puede utilizar la utilidad de la línea de comandos.
Sintaxis básica
El comando set toma la siguiente sintaxis:
$ Comando -Options Argumentos
Opciones de comando
Hay bastantes opciones que se pueden usar con el comando set. Exploremos algunos de ellos:
Valores de salida
Los siguientes son los valores de salida de shell asociados con el comando set:
0: El comando fue exitoso.
Establecer el comando sin ninguna opción
Sin ningún argumento, el comando SET enumera todas las variables de shell, incluidos sus valores.
$ set
Establecer parámetros posicionales con el comando set
El comando de conjunto de Linux se puede usar para asignar valores a parámetros posicionales. Un parámetro posicional es una variable en un programa de shell, y su valor se hace referencia como $ n donde n es un dígito que denota la posición del parámetro.
El valor de $ 1 es el primer parámetro posicional después del nombre del archivo o comando. El valor de $ 2 es el segundo parámetro, y así sucesivamente.
Supongamos que ejecutamos el comando que se muestra a continuación:
$ set rojo azul verde
Aquí, el rojo corresponde al parámetro posicional $ 1, el azul corresponde al parámetro $ 2, y finalmente, Green corresponde a $ 3.
Para enumerar todos los parámetros en el orden de $ 1 $ 2 $ 3 Ejecute el comando echo a continuación:
$ Echo "$*"
Para enumerar el primer parámetro, ejecute:
$ Echo $ 1
Para enumerar el segundo parámetro, ejecute:
$ Echo $ 2
Etcétera.
Use el comando set para desastar todos los parámetros posicionales
Para desastar los parámetros posicionales, ejecute el comando establecer con guiones dobles, como se muestra.
$ set --
Una vez más, si intenta enumerar los parámetros posicionales, obtendrá una salida en blanco, lo que implica que no han sido.
Ignorar una variable no unida
Por defecto, un script de shell pasa por alto una variable indefinida. En el script myScript.SH que se muestra a continuación, la variable $ foo aún no está definida y, por lo tanto, no existe.
Cuando se ejecuta el script, devuelve una línea en blanco para la línea que contiene una variable inexistente y procede a ejecutar la siguiente línea:
ps ./MyScript.mierda
Esta anomalía no es deseada, y los desarrolladores querrían ser notificados en caso de variables indefinidas. La directiva set -u al inicio del script imprimirá un error en el shell si el script se ejecuta en una variable indefinida.
Cuando el script se ejecuta una vez más, se muestra el error de una variable no unida.
Mostrar un error si un comando no es existente
Por lo general, si un comando se ejecuta en un error y no se ejecuta, el shell bash continuará ejecutando los comandos restantes. Tomemos, por ejemplo, el script de shell a continuación:
El comando foobar no existe, y se debe mostrar un error en el shell bash cuando el script se ejecuta para mostrar que el script en un problema. Sin embargo, esto no sucede y el shell va para ejecutar la siguiente línea como se muestra:
Como el ejemplo anterior, esta no es una buena práctica al escribir scripts de shell, especialmente para la seguridad y la depuración. Idealmente, el script debe detenerse cuando encuentre un error. Para abordar este escenario, defina el conjunto de directivas -e al comienzo del script como se muestra.
Cuando intente ejecutar el script nuevamente, se ejecutará con el error como se muestra:
Muestra un error en los comandos tuberiamente
El conjunto de directivas -e no funciona cuando se trata de comandos con tuberías. Considere el guión a continuación:
Cuando ejecuta el script, devuelve un error pero continúa ejecutando el comando posterior:
Para superar este obstáculo, pase la Directiva Set -EO PipeFail como se muestra:
$ set -eO pipefail
Esta vez, el script termina y no ejecuta la siguiente línea.
Defina Allexport y notifique a las opciones
Para establecer Allexport y notificar opciones, ejecute el comando:
$ set -o allexport -o notify
Conclusión
Esos fueron algunos ejemplos de cómo puede usar el comando set en sus scripts de shell. Como se observó, el comando SET puede ser una herramienta útil para configurar los parámetros de posición y depurar sus scripts de shell.