Ответ 1
Нет. Вы можете использовать exit
для возврата кода ошибки, но в целом вы не можете изменить среду оболочки из подпроцесса.
Вы также можете распечатать желаемый контент в awk и поместить его в переменные в bash с помощью read
:
read a b c <<< $(echo "foo" | awk '{ print $1; print $1; print $1 }')
Теперь $a
, $b
и $c
- все 'foo'. Обратите внимание, что для чтения чтения вам необходимо использовать синтаксис <<<$()
. Если вы используете какой-либо конвейер, создается и подпроцесс, а среда read
создает переменные, которые теряются при выполнении конвейера.