El comando de establecimiento de Linux

El comando de establecimiento de Linux

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:

  • -a: La opción -a establece todas las variables o funciones creadas o modificadas para exportar.
  • -b: La opción -b alerta inmediatamente al usuario cuando se terminan los trabajos de fondo.
  • -mi: La opción -e instruye a un shell que salga si un comando produce un estado de salida no cero. En pocas palabras, el shell sale cuando el comando falla.
  • -F: La opción -f deshabilita la generación de nombres de archivo.
  • -H: La opción -h está habilitada de forma predeterminada. Localiza y luego recuerda una función mientras está esperando la ejecución.
  • -norte: La opción -n solo lee comandos pero no los ejecuta.
  • -t: La opción -t sale al leer y ejecutar un comando.
  • -U: La opción -U trata variables no establecidas o indefinidas, excepto los parámetros especiales como los comodines (*) o "@" como errores durante la expansión de los parámetros.
  • -V: La opción -v imprime las líneas de la entrada de shell mientras se leen.
  • -X: La opción -x imprime argumentos de comando durante la ejecución

Valores de salida

Los siguientes son los valores de salida de shell asociados con el comando set:

0: El comando fue exitoso.

  1. El comando falló debido a un argumento de comando incorrecto
  2. Falla del comando debido a un argumento esperado que falta

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.