Tengo un problema para que mi shellscript funcione usando los palos de atrás. Aquí está una versión ejemplo de la secuencia de comandos que estoy teniendo un problema con:Problema con los palos de atrás en shellscript
#!/bin/sh
ECHO_TEXT="Echo this"
ECHO_CMD="echo ${ECHO_TEXT} | awk -F' ' '{print \$1}'"
result=`${ECHO_CMD}`;
echo $result;
result=`echo ${ECHO_TEXT} | awk -F' ' '{print \$1}'`;
echo $result;
La salida de este script es:
sh-3.2$ ./test.sh
Echo this | awk -F' ' '{print $1}'
Echo
¿Por qué la primera comilla invertida utilizando una variable para el comando no ejecuta realmente el comando completo pero solo devuelve la salida del primer comando junto con el segundo comando? Me falta algo para obtener el primer backtick para ejecutar el comando?
acentos abiertos son terriblemente anticuados y no se deben usar más - el uso de '$()' en lugar le ahorrará muchos dolores de cabeza – Daenyth
Consulte [BashFAQ/050] (http://mywiki.wooledge.org/BashFAQ/050) (no coloque comandos en las variables) y [BashFAQ/048] (http://mywiki.wooledge.org/ BashFAQ/048) (evite usar 'eval'). Además, tu shebang dice "#!/Bin/sh" y tu mensaje dice "sh", pero tu pregunta dice '[bash]' que no es lo mismo. –
No configuré la etiqueta bash, otro usuario cambió eso después de publicar esto. – benw