Подтвердить что ты не робот

AWK: вернуть значение в оболочку script

Возможно ли, чтобы команда awk в пределах значений bash script возвращалась к переменной bash, то есть, если мой awk script выполняет некоторые арифметические операции, могу ли я хранить ответы в переменных так, к ним можно получить доступ в bash script. Если возможно, как различать несколько возвращаемых переменных. Спасибо.

4b9b3361

Ответ 1

Нет. Вы можете использовать exit для возврата кода ошибки, но в целом вы не можете изменить среду оболочки из подпроцесса.

Вы также можете распечатать желаемый контент в awk и поместить его в переменные в bash с помощью read:

read a b c <<< $(echo "foo" | awk '{ print $1; print $1; print $1 }')

Теперь $a, $b и $c - все 'foo'. Обратите внимание, что для чтения чтения вам необходимо использовать синтаксис <<<$(). Если вы используете какой-либо конвейер, создается и подпроцесс, а среда read создает переменные, которые теряются при выполнении конвейера.