防止 apt list 抛出错误

防止 apt list 抛出错误

我正在尝试使用以下命令检测 bash 脚本中是否安装了软件包,但该脚本不断出错并阻止其运行后的任何内容。

是否有一个选项apt告诉它当包不在列表中时不抛出错误?

pkgExists=$(apt list "azure-cli" | grep "azure-cli" -s)

答案1

如果包不在列表中,apt list则仅显示Listing... Done并退出。如果你尝试像你一样通过管道传输它的输出,但是它会抛出一个明确的警告:

警告:apt 没有稳定的 CLI 界面。在脚本中谨慎使用。

请改为使用dpkg-query --list,例如:

dpkg-query --list "azure-cli" && echo "exists" || echo "doesn't exist"

请注意,dpkg-query --list不显示未安装的软件包。

相关内容