更新しようとする古いスクリプトがいくつかあります。一部のコードは次のように要約されます。
export X=`(echo "abc"; echo "def")`
echo $X
これにより、期待される出力が得られます。
abc def
今、インターネットは、私が$()使用する必要があるのはバックティックが出ていることを教えてくれますが、私が試みるとき:
export X=$((echo "abc"; echo "def"))
X 設定されておらず、エラーが表示されます:
bash: echo "abc"; echo "def": syntax error: invalid arithmetic operator (error token is ""abc"; echo "def"")
何が間違っていますか?
`...`を$(...)開始することに注意する(...)必要がありますので、内部は必要ありません(プロセスを無駄にします)。$( (...); (...) )たとえば、内部サブシェルが必要な場合などにスペースが必要になります。