怎么会
echo `echo "foo"`
有效但是
echo `awk '{ print "foo" }'`
不是吗?
答案1
程序awk
将等待输入,并为每一行输入打印单词foo
。这就是awk
程序的作用{ print "foo" }
。
相反,echo
在第一个命令替换中, 不等待输入。
您是否希望awk
程序只打印一些内容,而不需要任何输入,在块中进行输出BEGIN
:
awk 'BEGIN { print "foo" }'
该BEGIN
块被执行前读取第一行输入,并且由于脚本中没有其他块,也没有输入文件,因此它将退出。
另外,切勿编写类似echo $( ... )
or 的代码echo ` ... `
,只需使用命令替换中的代码即可。