0
我實際上想要將FS初始化爲「=」並將第二個字段存儲在某個文本文件中。我爲它編寫了一個shell腳本。這裏BASH正在考慮$ 2是指第二個字段輸入文本文件和$ 1表示輸入文本文件的名稱。bash如何區分AWk參數和shell參數?shell腳本中的參數
THIs是shellcript,它的工作原理!
awk 'BEGIN{FS="=";}{print $2 >> "a.txt"}' $1
exit
我實際上想要將FS初始化爲「=」並將第二個字段存儲在某個文本文件中。我爲它編寫了一個shell腳本。這裏BASH正在考慮$ 2是指第二個字段輸入文本文件和$ 1表示輸入文本文件的名稱。bash如何區分AWk參數和shell參數?shell腳本中的參數
THIs是shellcript,它的工作原理!
awk 'BEGIN{FS="=";}{print $2 >> "a.txt"}' $1
exit
單引號之間的整個字符串被逐字傳遞給awk
。由於$1
不在單引號之間,因此bash
將解釋它並替換第一個參數的值。
(順便說一下,這是一個很好的做法,始終使用變量雙引號,如"$1"
。否則,如果$1
曾在它的空間,它會擴展到多個單詞。)
事實並非如此。單引號使shell忽略內容。它根本找不到變量。這就是單引號的作用。 – 2015-02-24 18:39:37
'$ 1'是一個shell變量,第一個位置參數。 '$ 2'是一個awk結構,引用當前記錄中第二個字段(2)的值($)。 – 2015-02-24 18:44:45
沒有awk,同樣的結果是可能的:'cut -d = -f2 $ 1'。當你想要等號後的所有內容時,即使是可能的第二個,使用'-f2-'。 – 2015-02-24 21:44:33