AWK:返回shell脚本的值

时间:2012-03-14 18:36:38

标签: bash awk

是否可以在bash脚本中使用awk命令将值返回给bash变量,即,如果我的awk脚本执行某些算术运算,我可以将答案存储在变量中,这样就可以在bash脚本中访问它们。如果可能,如何区分多个返回变量。感谢。

2 个答案:

答案 0 :(得分:15)

没有。您可以使用exit返回错误代码,但通常您无法从子进程修改shell环境。

当然,您也可以使用read在awk中打​​印所需内容并将其放入bash变量中:

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

现在$a$b$c都是'foo'。请注意,您必须使用<<<$()语法才能使读取工作。如果您使用任何类型的管道,那么也会创建一个子流程,并且当管道执行完毕时,环境read会导致变量丢失。

答案 1 :(得分:0)

var=$(awk '{ print $1}')

这应该将var设置为awk的输出。然后,您可以使用字符串函数或其他任何函数来区分值,或仅用awk打印所需的部分。