Expansión del comando bash

Expansión del comando bash

Al trabajar con comandos en Bash, alcanzará un punto en el que debe usar la salida de un comando dado como valor para una variable dada. La expansión del comando es un término utilizado para referirse sustitución de comandos donde la salida de un comando dado se usa en lugar del comando. Idealmente, el comando se ejecuta y su valor reemplaza el comando, y en la mayoría de los casos, se usa cuando se trabaja con variables.

La expansión del comando bash es útil cuando debe usar una variable dada cuyos valores aún no se conocen a menos que el comando se ejecute por primera vez. Esta guía cubre varios ejemplos para ayudar a comprender cómo trabajar con la sustitución del comando bash.

Cómo usar la expansión del comando bash

La expansión del comando se puede usar de dos maneras.

Puede encerrarlo como en la sintaxis a continuación:

$ (comando)

Alternativamente, puede usar retroceso, Como se muestra abajo.

'dominio'

Cuando usa la sustitución bash en un script, la salida del comando reemplazará el comando cuando se ejecute.

Por ejemplo, si necesita escribir un comando que imprima la fecha y hora actuales y el tiempo de actividad al ejecutar el script, podríamos tener un script escrito como se muestra a continuación.

Hemos creado una variable en el script, pero su valor depende de la salida del comando. Además, estamos imprimiendo el valor de la variable declarada utilizando el eco dominio. Ese es un caso de sustitución del comando bash. Ejecutemos el comando y veamos cómo se comporta.

Tenga en cuenta que cualquier línea de salida al imprimir la salida se elimina cuando usa la sustitución de comandos. Por ejemplo, usemos el Comando SEQ para imprimir valores del 1 al 10, omitiendo dos valores. Si ejecutamos el comando a continuación, observaremos que cada nueva línea se contabiliza.

$ seq 1 2 10

Sin embargo, si usa la sustitución del comando para el mismo comando, la salida sería diferente a medida que se eliminen las nuevas líneas.

Expansión del comando bash en bucles

Si tiene un script determinado que debe ejecutar una tarea dada, pero los valores de esa variable dependen de la salida del comando, puede usar la expansión bash. Por ejemplo, si tuviera un archivo que contenía los nombres de las direcciones IP, podría ejecutar un en bucle Para realizar una tarea dada basada en los nombres de ese archivo.

El script a continuación abre un archivo utilizando el gato comandan e imprime el contenido del archivo en el shell actual.

Aquí está la salida que confirma que puede usar sustitución de bash con bucles.

Expansión de comando y expansión de parámetros

La expansión del comando bash es casi similar a la expansión de los parámetros. En la sustitución de Bash, usamos ps, mientras que para la expansión de los parámetros, usamos ps. La expansión del parámetro protege una variable de la expansión del comando. Tengamos un ejemplo para entender.

En el ejemplo anterior, estamos creando una variable con nombre fecha. Si hacemos eco de la variable utilizando la expansión del parámetro, obtenemos que imprimimos el valor de la variable seguido de la palabra agregada después del valor variable.

Sin embargo, en el ejemplo de sustitución de comando, vemos que el comando fecha, que imprime la fecha y hora actuales, se sustituye y la salida se usa en lugar del comando.

Entonces, si no desea que una variable sea tratada como un caso de expansión del comando, use $ en lugar de $ ().

Conclusión

La expansión del comando bash es la misma que la sustitución del comando. Esta guía ha explicado qué significa la expansión del comando, y hemos dado varios ejemplos para ayudar a comprender cómo puede usar la expansión del comando para sus scripts bash. La conclusión clave es que la sustitución del comando es cuando la salida de un comando se usa en lugar del comando en sí mismo al obtener o establecer el valor de una variable.