Googleでこのような記事を見つけました。投稿リンク。 そこで、次のプログラム/ツールをインストールするかどうかを制御するコマンドを見つけました。だから私はそれを使用することにしました。
#!/bin/bash
set -x
programs=$(bc nmap coreutils xmlstarlet)
if [ $(dpkg-query -W -f='${Status}' "$programs" 2>/dev/null | grep -c "ok installed") -eq 0 ];
then
apt-get update | apt-get install "$programs" -y;
fi
私がこの仕事をしっかりしているのか?それとも何か問題があるのでしょうか?
program/tool name
私は方法が必要でprograms variable
あり、それは私のコンピュータで実行されます。
ベストアンサー1
command -v
if条件の戻りコードを使用して、インストールされていることを簡単に確認できます。いいえインストール済み
apt-get update
programs=(bc nmap coreutils xmlstarlet)
for program in "${programs[@]}"; do
if ! command -v "$program" > /dev/null 2>&1; then
apt-get install "$program" -y
fi
done
このオプションはcommand -v
POSIXと互換性があります。apt-get update
すべてのループ反復の代わりに一度だけ実行できます。また、programs
繰り返しのための配列でなければならない変数を定義しました。