1

コマンドラインで不足しているパッケージをエコーアウトするスクリプトが動作していますが、不足しているアプリケーションをインストールするためのコントロールを追加するオプションが必要です。これを行うための最良の方法は何ですか?apt-get install $tmp?

#!/bin/bash

echo "Checking server for missing packages..."
tmp=$(dpkg-query -W -f='${Package} ${Status} \n' apache2 openssh-server php5 \
php5-cli php5-xsl php5-imap php5-curl | grep "no package found")

if [[ $tmp =~ "no package found" ]]
then
echo "working"
apt-get install $tmp
else
echo "foo"
fi

ループを追加しようとしましたが、$tmp から出力が得られません

ありがとう

4

1 に答える 1

1

システムに既にインストールされているパッケージに名前を付けても、apt-get は文句を言いません。この事実を考えると、既にインストールされているパッケージを除外しようとせず、次のワンライナーを使用するだけです。

apt-get install apache2 openssh-server php5 php5-cli php5-xsl php5-imap php5-curl

-qy スイッチを追加して、何も聞かれずに静かに実行することをお勧めします。

于 2013-02-09T06:14:00.370 に答える