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