¿Cómo puedo establecer una variable a la salida de un comando en Bash?
Tengo un script bastante simple que es algo como lo siguiente:
#!/bin/bash
VAR1="$1"
MOREF='sudo run command against $VAR1 | grep name | cut -c7-'
echo $MOREF
Cuando ejecuto este script desde la línea de comandos y le paso los argumentos, no obtengo ninguna salida. Sin embargo, cuando ejecuto los comandos contenidos en la variable $MOREF
, soy capaz de obtener la salida.
¿Cómo se pueden tomar los resultados de un comando que debe ser ejecutado dentro de un script, guardarlo en una variable, y luego mostrar esa variable en la pantalla?
1497
3
Además de los backticks
puedes usarcomando
$(comando)
o"$(comando)"
que me parece más fácil de leer, y permite el anidamiento.El entrecomillado (
"
) es importante para preservar los valores de varias líneas.El camino correcto es
Si va a utilizar un apóstrofe, necesita
``, no
. Este carácter se denomina "acento de espalda" (o "acento grave").Así:
Sólo para ser diferente: