Eu tenho alguns scripts antigos que tento atualizar. Alguns dos códigos condensa para:
export X=`(echo "abc"; echo "def")`
echo $X
que fornece a saída esperada:
abc def
Agora, a internet me diz que os backticks estão fora $()é o que eu preciso usar, mas quando tento:
export X=$((echo "abc"; echo "def"))
X não está definido e recebo o erro:
bash: echo "abc"; echo "def": syntax error: invalid arithmetic operator (error token is ""abc"; echo "def"")
O que estou fazendo de errado?
`...`e$(...)iniciar um subshell de qualquer maneira, para que o interior(...)não seja necessário (desperdice um processo). Você precisaria do espaço em coisas como,$( (...); (...) )por exemplo (onde os subshells internos podem ser necessários).