У меня есть несколько старых скриптов, которые я пытаюсь обновить. Часть кода сокращается до:
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"")
Что я делаю неправильно?
`...`и$(...)запускайте подоболочку в любом случае, так что внутренняя(...)часть не нужна (тратит впустую процесс). Вам понадобится место в таких вещах, как,$( (...); (...) )например, (где могут понадобиться внутренние подоболочки).