out=$(snmpget -v2c -c $community $device ifDescr.2)
的输出未写入变量,但错误消息显示在屏幕上。
由于if [[ "$out" == *"Error"* ]]
,我需要将此错误消息放入变量。
还有另一种方法吗?
答案 0 :(得分:1)
snmpget向stderr而不是stdout发送错误消息。这在UNIX / Linux上很常见。但命令替换运算符$()
仅捕获stdout。如果要将错误消息捕获到变量中,则需要使用2>&1
将stderr重定向到stdout:
out=$(snmpget -v2c -c $community $device ifDescr.2 2>&1)
答案 1 :(得分:0)
已经通过获取错误编号到/ dev / null并使if条件得到解决...但是感谢您获得新知识:)