Bash

嘗試 awk 時使用 echo 操作

  • May 15, 2018

怎麼會

echo `echo "foo"`

有效,但

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

不是嗎?

程序將awk等待輸入,並且對於每一行輸入,列印單詞foo。這就是awk程序的{ print "foo" }作用。

相反,echo在第一個命令替換中,不等待輸入。

您是否希望awk程序只列印一些東西,而無需任何輸入,在一個BEGIN塊中執行輸出:

awk 'BEGIN { print "foo" }'

BEGIN塊在讀取第一行輸入之前執行,由於腳本中沒有其他塊,也沒有輸入文件,因此它將退出。

此外,永遠不要編寫類似echo $( ... )orecho … ``的程式碼,只需使用命令替換中的程式碼即可。

引用自:https://unix.stackexchange.com/questions/443847