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