2013-07-15 133 views
3

我試圖運行命令並將其存儲在變量中。將命令存儲在變量&使用變量中

length=`last | grep foouser | wc -l` 

它工作正常,但當我添加一個變量到它打破的命令。

value=$1 
length=`last | grep $value | wc -l` 

如何通過acceptomg變量來獲得第二個示例?

+0

究竟什麼突破?另外,您可能希望在'grep'命令中使用'$ value'來代替'$ 1'。 – chepner

+0

好的是道歉,這是'grep'之後的$ value。 – ojhawkins

回答

3

你實際上並不需要wc

length=$(last | grep -c "$value") 

你可以改善變量名

num_logins=$(last | grep -c "$username") 
4

你應該引用你的變量。如果包含空格,你的腳本可能會破壞:

value="$1" 
length="$(last | grep "$value" | wc -l)" 
+0

引用'$ value'作爲'grep'的參數很重要。引用這兩項任務的RHS並不那麼重要;不會執行分詞,因此我不確定將它們留在沒有引號的位置是沒有問題的(儘管引用它們也沒有什麼不好)。 – chepner

+0

仍然沒有運氣,我輸入'value =「foouser」/ n length =「$(last | grep」$ value「| wc -l)」'然後試圖回顯'$ lenght'並且它什麼都不返回@Benoit @ chepner – ojhawkins

+0

你在這裏意外地鍵入了'lenght'。你是否忘了在終端上? – chepner