在运行脚本之前,我尝试测试脚本中是否安装了某些软件包。 通过 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(
||
) 的特殊之处在于,如果第一个条件评估为 true(即退出状态为零),则不会评估第二个条件。
我参加聚会有点晚了。你可以通过这样做绕过 dpkg:
# which dialog || apt install dialog