2012-03-14 136 views
12

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

回答

15

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

您还可以,当然,打印AWK想要的内容并把它变成变量在bash使用read

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

现在$a$b$c都是“富”。请注意,您必须使用<<<$()语法来使读取工作。如果您使用任何类型的管道,则也会创建一个子进程,并且在管道完成执行时环境会创建变量。

+0

怎么样?你能举个例子吗?谢谢 – 2012-03-14 18:51:37

+0

@ShuvoShams:我加了一个,希望它有帮助。 – 2012-03-14 18:57:46

+0

@EduardoIvanec - 修改父进程的环境(变量)非常困难,以至于它可能被宣布为“几乎不可能”。 – 2012-03-14 19:43:22