尝试 awk 时使用 echo 操作 `

尝试 awk 时使用 echo 操作 `

怎么会

 echo `echo "foo"`

有效但是

 echo `awk '{ print "foo" }'`

不是吗?

答案1

程序awk将等待输入,并为每一行输入打印单词foo。这就是awk程序的作用{ print "foo" }

相反,echo在第一个命令替换中, 不等待输入。

您是否希望awk程序只打印一些内容,而不需要任何输入,在块中进行输出BEGIN

awk 'BEGIN { print "foo" }'

BEGIN块被执行读取第一行输入,并且由于脚本中没有其他块,也没有输入文件,因此它将退出。

另外,切勿编写类似echo $( ... )or 的代码echo ` ... `,只需使用命令替换中的代码即可。

相关内容