Sto riscontrando un problema nel far funzionare il mio shell script con i backtick. Ecco una versione ad esempio dello script sto avendo un problema con:Problema con i backtick in 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;
L'output di questo script è:
sh-3.2$ ./test.sh
Echo this | awk -F' ' '{print $1}'
Echo
Perché il primo apice inverso utilizzando una variabile per il comando in realtà non esegue il comando completo ma restituisce solo l'output del primo comando insieme al secondo comando? Mi manca qualcosa per ottenere il primo backtick per eseguire il comando?
backtick sono terribilmente obsolete e non devono essere utilizzati più - con '$()' invece vi farà risparmiare molti mal di testa – Daenyth
Si prega di vedere [BashFAQ/050] (http://mywiki.wooledge.org/BashFAQ/050) (non inserire comandi nelle variabili) e [BashFAQ/048] (http://mywiki.wooledge.org/ BashFAQ/048) (evita di usare 'eval'). Inoltre, il tuo shebang dice "#!/Bin/sh" e il tuo prompt dice "sh", ma il tuo tag di domanda dice '[bash]' che non è la stessa cosa. –
Non ho impostato il tag bash, un altro utente l'ha modificato dopo averlo postato. – benw