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