out=$(snmpget -v2c -c $community $device ifDescr.2)
的輸出不寫入變量,但錯誤信息出現在屏幕上。snmpget顯示錯誤信息的響應
因爲if [[ "$out" == *"Error"* ]]
,我需要把這個錯誤信息給變量。 有沒有另一種方法來實現它?
out=$(snmpget -v2c -c $community $device ifDescr.2)
的輸出不寫入變量,但錯誤信息出現在屏幕上。snmpget顯示錯誤信息的響應
因爲if [[ "$out" == *"Error"* ]]
,我需要把這個錯誤信息給變量。 有沒有另一種方法來實現它?
snmpget正在向stderr發送錯誤消息,而不是stdout。這在UNIX/Linux上很常見。但是命令替換運算符$()
僅捕獲標準輸出。如果你想趕上錯誤信息到您的變量,您需要使用2>&1
重定向標準錯誤到標準輸出:
out=$(snmpget -v2c -c $community $device ifDescr.2 2>&1)
與得到錯誤號已經解決到/ dev/null,並且如果條件使...但謝謝爲新知識:)
請在您的問題中添加更多詳細信息。 – 2014-10-20 16:26:01