Bash
嘗試 awk 時使用 echo 操作
怎麼會
echo `echo "foo"`
有效,但
echo `awk '{ print "foo" }'`
不是嗎?
程序將
awk
等待輸入,並且對於每一行輸入,列印單詞foo
。這就是awk
程序的{ print "foo" }
作用。相反,
echo
在第一個命令替換中,不等待輸入。您是否希望
awk
程序只列印一些東西,而無需任何輸入,在一個BEGIN
塊中執行輸出:awk 'BEGIN { print "foo" }'
該
BEGIN
塊在讀取第一行輸入之前執行,由於腳本中沒有其他塊,也沒有輸入文件,因此它將退出。此外,永遠不要編寫類似
echo $( ... )
orecho
… ``的程式碼,只需使用命令替換中的程式碼即可。