我正在尝试使用以下命令检测 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
不显示未安装的软件包。