我正在尝试测试有关 Debian 上特定软件包版本的信息。但是,我对 APT 结果的 grep 似乎没有做任何事情。我不确定如何编写 bash 命令:
if [[ $(apt-get -s install golang | grep "E: Unable to locate") ]]; then
echo "problem"
exit;
fi
if apt-get -s install golang | grep "E: Unable to locate" > /dev/null; then
echo "problem"
exit;
fi
OUTPUT=`apt-get -s install golang | grep --quiet "E: Unable to locate"`
if [ -n "$OUTPUT" ]; then
echo "problem"
exit;
fi
与大多数错误消息一样,该消息打印在 stderr 上。您可以将标准错误重定向到标准输出:
但是,更好的方法是:
> /dev/null 2>&1
如果您希望用户的唯一错误消息是“问题”,您可以选择使用。