2011-03-21 58 views
1

我想在bash腳本如下:嵌套反向引號不工作

COUNT=`cat "$NEWLIST" | wc -l | awk \' { print $1 } \` ` 

其中NEWLIST是包含文件的列表,每行一個字符串。但我得到這個錯誤:

command substitution: line 74: unexpected EOF while looking for matching `'' 

爲什麼會失敗?我如何使用嵌套反引號?

(基本上我試圖從WC的結果剝離空白,但我也想知道如何使用反正嵌套反引號)

回答

2

你混合'和'

COUNT=`cat "$NEWLIST" | wc -l | awk ' { print $1 } ' ` 
2

這第二個「逃脫反引號」實際上應該是一個單引號,就像第一個一樣。另外,請注意那裏的$1

+1

爲什麼我需要小心使用$ 1嗎? – mark 2011-03-21 23:28:13

8

這是一個原因,你應該使用$()而不是反引號的。

此外,還有沒有必要cat或AWK:

COUNT=$(wc -l < "$NEWLIST") 
+0

謝謝。我最初使用的是awk,因爲在我的Mac OSX終端中,wc正在生成領先的空白。但它似乎與上述表達式一起消失了。 – mark 2011-03-22 05:49:05