次のコマンドを使用して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
ません。