基本的に、これらの2つのコマンドを実行したいのですが、キーが既に存在するかどうかを確認したいと思います。私はbashでifthenelseを実行する方法を知っていますが、結果を取得して変数に格納し、条件演算子に配置できるようにチェックする方法がわかりません。たとえば、すでに存在する場合は、ダウンロードと再追加をスキップできます。
例1(--fetch-keys):
Sudo apt-key adv --fetch-keys https://packages.Microsoft.com/keys/Microsoft.asc
Sudo tee /etc/apt/sources.list.d/vscode.list > /dev/null <<- END
deb [Arch=AMD64] https://packages.Microsoft.com/repos/vscode stable main
END
例2(--recv-keys):
Sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B9A06DE3
Sudo tee /etc/apt/sources.list.d/inkscape.list > /dev/null <<- END
deb [Arch=AMD64] http://ppa.launchpad.net/inkscape.dev/stable-daily/ubuntu bionic main
END
次のようなものはどうですか:
TEST=$(apt-key list 2> /dev/null | grep my_app_name)
if [[ ! $TEST ]]; then
echo "Missing - need to run --fetch-keys or --recv-keys"
fi
Stderrをnullデバイス(2>/dev/null)にパイプして、スクリプトでapt-keyリストを使用したときに表示される警告を非表示にしました。
「sudo apt-key list」を単独で実行して、「grep」をより選択的に変更したい場合に、出力がどのように見えるかを確認してください。