Ho alcuni vecchi script che provo ad aggiornare. Alcuni dei codici condensano a:
export X=`(echo "abc"; echo "def")`
echo $X
che fornisce l'output previsto:
abc def
Ora Internet mi dice che i backtick sono fuori $()è quello che devo usare, ma quando provo:
export X=$((echo "abc"; echo "def"))
X non è impostato e viene visualizzato l'errore:
bash: echo "abc"; echo "def": syntax error: invalid arithmetic operator (error token is ""abc"; echo "def"")
Che cosa sto facendo di sbagliato?
`...`e$(...)avviare comunque una subshell, quindi l'interno(...)non è necessario (sprecare un processo). Avresti bisogno di spazio in cose come$( (...); (...) )per esempio (dove potrebbero essere necessarie le sottostrutture interne).