如何在静默模式下使用dpkg

问题描述 投票:0回答:3

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

dpkg -s dialog
dialogStatut=$?

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

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

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

bash dpkg
3个回答
3
投票

您正在寻找 2> /dev/null

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

考虑退出脚本来显式安装

dialog
,而不是让您的脚本负责这样做。


0
投票

我会做类似的事情

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

OR(

||
) 的特殊之处在于,如果第一个条件评估为 true(即退出状态为零),则不会评估第二个条件。


0
投票

我参加聚会有点晚了。你可以通过这样做绕过 dpkg:

# which dialog || apt install dialog
© www.soinside.com 2019 - 2024. All rights reserved.