Bash ¿Cómo ejecutar un comando en una variable?

Bash How Execute Command Variable



Los scripts Bash se pueden crear de diferentes formas y la mayoría de nosotros estamos familiarizados con la ejecución de comandos simples dentro de un script Bash. Sin embargo, estos comandos también se pueden encapsular dentro de las variables en Bash. Este proceso se conoce como sustitución de comandos y generalmente se usa para almacenar el resultado de un comando en una variable para que no tenga que ejecutar ese comando explícitamente una y otra vez, sino que simplemente puede acceder a esa variable para obtener el resultado de ese comando. cuando quieras. En este artículo, le mostraremos cómo se puede hacer esto.

Nota: Todos los escenarios que se muestran a continuación se han llevado a cabo en Ubuntu 20.04. Sin embargo, también funcionarán exactamente de la misma manera con cualquier otra versión de Linux.







Método de ejecución de un comando en una variable en Bash:

Para demostrar el método de ejecución de un comando en una variable en Bash, le presentaremos tres escenarios diferentes que son los siguientes:



Ejecutando el comando echo almacenado en una variable:

Este es el escenario más simple en el que nuestro objetivo es ejecutar el comando echo que está almacenado en una variable. Para que esto suceda, deberá seguir la serie de pasos que se mencionan a continuación:



Paso # 1: Creación de un script Bash:

Debe crear un Bash Script en su carpeta de Inicio para el cual debe hacer clic en el ícono del Administrador de archivos como puede ver en la siguiente imagen:





Ahora busque cualquier espacio en su carpeta de Inicio y haga clic derecho sobre él para abrir un menú. Seleccione la opción Nuevo documento en este menú y luego elija la opción Documento vacío en el menú secundario en cascada. Hacer esto creará un nuevo documento en su carpeta de Inicio. Ahora cambie el nombre de este documento recién creado con cualquier nombre de su elección seguido de la extensión .sh. En nuestro caso, lo hemos nombrado CommandVar.sh.



Para escribir un script Bash en este archivo, haga doble clic en él para abrirlo y luego escriba el script que se muestra en la imagen de abajo en su archivo Bash. Aquí, la primera línea del script, es decir, #! / Bin / bash muestra que este archivo es de hecho un archivo Bash. Luego hemos creado una variable llamada test y le hemos asignado el valor $ (echo Hola!). Siempre que desee almacenar el comando en una variable, debe escribir ese comando precedido por un símbolo $. En este caso, queríamos almacenar el comando echo en la variable de prueba, así que simplemente escribimos el comando echo seguido de un mensaje aleatorio y lo encerramos entre corchetes y colocamos un símbolo $ antes. Así que ahora, si queremos ejecutar este comando echo, tendremos que acceder a la variable de prueba. Por lo tanto, para verificar si el comando echo almacenado en la variable de prueba se puede ejecutar con éxito o no, hemos impreso la salida de la variable de prueba en el terminal haciendo uso de otro comando echo. Después de escribir este script, debe guardar su archivo y cerrarlo.

Paso # 2: Ejecutando el Script Bash a través de la Terminal:

Ahora tienes que ejecutar este script a través de la terminal. Entonces, abra el terminal en Ubuntu 20.04 y luego escriba el siguiente comando en él:

intentoCommandVar.sh

Cuando presione la tecla Enter para ejecutar este comando, podrá ver la siguiente salida en su terminal. Aquí, la parte resaltada de la salida es la salida del comando echo que se almacenó en la variable de prueba.

Ejecutando el comando seq almacenado en una variable:

En este escenario, imprimiremos una secuencia de números usando el comando seq almacenado en una variable. Para que esto suceda, modificaremos el script Bash creado anteriormente realizando los siguientes pasos:

Paso n. ° 1: modificar el script de Bash creado anteriormente:

Abra el archivo Bash que ha creado en el método anterior y escriba el siguiente script en él. Aquí, hemos creado una variable llamada secuencia. Nuestro objetivo es imprimir los números del 1 al 10 mientras usamos el comando seq. Para hacer eso, hemos asignado el valor $ (seq 1 10) a la variable de secuencia. También puede especificar cualquier otro rango de números de su elección si lo desea. El primer número después del comando seq indica el límite inferior de la secuencia, mientras que el segundo número se refiere al límite superior. Después de escribir este script, guarde su archivo y ciérrelo.

Paso # 2: Ejecutando el Script Bash modificado a través de la Terminal:

Ahora ejecute su script Bash de la misma manera que se explicó anteriormente y podrá ver la secuencia especificada en su terminal como se muestra en la imagen a continuación:

Ejecutando el comando 'pwd' almacenado en una variable:

También puede imprimir su directorio de trabajo haciendo uso del comando pwd almacenado en una variable. Para demostrar esto, modificaremos el script Bash creado anteriormente una vez más siguiendo los pasos que se mencionan a continuación:

Paso n. ° 1: modificar el script de Bash creado anteriormente:

Abra el archivo Bash que acaba de modificar y luego escriba el script que se muestra en la siguiente imagen. En este script, hemos creado una variable llamada working_directory y le hemos asignado el valor $ (pwd). El comando pwd simplemente almacenará su salida, es decir, el directorio de trabajo actual en la variable working_directory. Para asegurarnos de que el comando pwd se haya ejecutado correctamente o no, imprimimos el valor de la variable working_directory en la terminal usando el comando echo. Ahora guarde este archivo y luego ciérrelo después de escribir el script Bash modificado en él.

Paso # 2: Ejecutando el Script Bash modificado a través de la Terminal:

Ahora ejecute este script de Bash de la misma manera que se explicó anteriormente. La salida de este script Bash le mostrará el directorio de trabajo actual. La parte resaltada de la salida es, de hecho, la salida del comando pwd.

Conclusión:

Este artículo da una muy buena idea de cómo puede ejecutar un comando que está almacenado dentro de una variable en Bash y puede obtener el mismo resultado que habría obtenido si hubiera ejecutado el comando de forma independiente.