Linux

防止 apt list 拋出錯誤

  • February 15, 2020

我正在嘗試使用以下命令檢測是否在 bash 腳本中安裝了一個包,但該腳本不斷出錯並阻止它執行後的任何內容。

當包不在列表中時,是否有一個選項apt告訴它不拋出錯誤?

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

如果一個包不在列表中,apt list只顯示Listing... Done並退出。如果您嘗試像您一樣通過管道傳輸其輸出,但它會拋出一個明確的警告:

警告:apt 沒有穩定的 CLI 界面。在腳本中謹慎使用。

改為使用dpkg-query --list,例如:

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

請注意,dpkg-query --list它不顯示未安裝的軟體包。

引用自:https://unix.stackexchange.com/questions/391959