如何在静默模式下使用dpkg

How to use dpkg in silent mode

我尝试在 运行 之前测试我的脚本中是否安装了一些包。 通过 dpkg 命令来做到这一点。这是我的代码:

dpkg -s dialog
dialogStatut=$?

if [ "$dialogStatut" -eq 1 ]; then
    //Install package
fi 

我想在静默模式下制作 dpkg(没有回声)。 我试图将 >&- 2>&- 放在命令后面,但如果我这样做,该值始终为 2(无论是否安装了对话框)。

我在 man dpkg 中没有找到解决方案。 最好的方法是什么?

您正在寻找 2> /dev/null

if ! dpkg -s dialog 2> /dev/null; then
    ...
fi

考虑只退出您的脚本,让 dialog 被显式安装,而不是让您的脚本负责这样做。

我会做类似的事情

dpkg -l dialog &>/dev/null || apt-get install dialog

OR(||) 的特殊性如果第一个条件的计算结果为真(即退出状态为零),则第二个条件将不会被计算。