2011-09-26 52 views
0

我試圖讓下面的行工作剿grep的輸出,但捕捉它在變量

WERRORS=`echo $VALPG | grep -q -s -o -m 1 '\<[0-9]* Errors'` 

我想是的grep的結果進入WERRORS變量,但在終端沒有迴音。 所以我使用-q,但然後WERRORS是空的

+0

你能給什麼將是一個例子:如果你需要在一個變量這個輸出(這是有點問題的,因爲它通常本地化),使用2> & 1重定向它$ VALPG? –

+0

你應該有什麼工作(如果你放棄'-q')。但是加引號:'「$ VALPG」'而不是'$ VALPG'不會造成傷害。 –

回答

1

如果grep發送任何錯誤消息,他們去錯誤輸出,這是反引號不捕獲。

WERRORS=`echo $VALPG | grep -s -o -m 1 '\<[0-9]* Errors' 2>&1` 
1
WERRORS=`echo $VALPG | grep -s -o -m 1 '\<[0-9]* Errors'` 
0
kent$ val=abcpc 

kent$ a=$(echo $val|grep -o -m 1 -s 'pc')                        

kent$ echo $a 
pc