AWK: вернуть значение в сценарий оболочки - PullRequest
12 голосов
/ 14 марта 2012

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

Ответы [ 2 ]

15 голосов
/ 14 марта 2012

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

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

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

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

0 голосов
/ 22 августа 2018
var=$(awk '{ print $1}')

Это должно установить var на вывод awk.Затем вы можете использовать строковые функции или что-то еще, чтобы различать значение или иметь awk для печати только той части, которую вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...