実行可能ファイルが存在することを確認し、存在しない場合はインストールしてください。

実行可能ファイルが存在することを確認し、存在しない場合はインストールしてください。

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 -vif条件の戻りコードを使用して、インストールされていることを簡単に確認できます。いいえインストール済み

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 -vPOSIXと互換性があります。apt-get updateすべてのループ反復の代わりに一度だけ実行できます。また、programs繰り返しのための配列でなければならない変数を定義しました。

おすすめ記事