AWK:返回shell脚本的值

Shu*_*ams 12 bash awk

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

Edu*_*nec 15

不可以.您可以使用exit返回错误代码,但通常不能从子进程修改shell环境.

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

read a b c <<< $(echo "foo" | awk '{ print $1; print $1; print $1 }')
Run Code Online (Sandbox Code Playgroud)

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


小智 5

var=$(awk '{ print $1}')
Run Code Online (Sandbox Code Playgroud)

这应该将 var 设置为 awk 的输出。然后你可以使用字符串函数或其他任何东西来区分值或让 awk 只打印你想要的部分。