Answers:
使用curl,毫无意义地猜测每个错误的外观。
[wizard@laptop ~] curl -s -S http://www.google.coccm/ > /dev/null && echo "TRUE"
curl: (6) Couldn't resolve host 'www.google.coccm'
[wizard@laptop ~]$ curl -s -S http://www.google.com/ > /dev/null && echo "TRUE"
TRUE
-s /-静音
Silent mode. Don’t show progress meter or error messages. Makes Curl mute.
-S /-显示错误
When used with -s it makes curl show error message if it fails.
并且由于某种原因如果您需要在stdout上使用stderr。
curl -s -S http://www.google.coccm/ 2>&1 1> /dev/null
我没有看到这样的选择。您是否需要知道错误是什么,还是仅仅知道它是否已发生?如果您只是想知道是否有错误,可以使用退出状态。
if ! wget -o /dev/null www.google.com/flasfsdfsdf; then
echo 'Oops!'
fi
或许:
if ! wget -o logfile www.google.com/flasfsdfsdf; then
cat logfile
fi
如果您想花哨的话,可以将cat更改为grep命令...
将标准输出重定向到/dev/null
,但将错误输出保留在您选择的Shell中。
用bash表示:
wget [wget options] > /dev/null
编辑:所以wget
行为不端。如果所有错误中都包含“错误”一词,则可以通过管道grep
wget [wget options] 2>&1 | grep -i "error"
grep
只输出错误
stderr
没有帮助就不会通过管道。
由于在上wget
输出所有消息stderr
,因此必须先使用重定向,然后才能将其通过管道传递到grep:
wget [options] 2>&1 | grep "^wget:"
假定wget
从“ wget:”开始其错误行。