if文のgrep変数

if文のgrep変数

たぶん私が間違って考えているかもしれないので、提案を受け入れる準備ができています。 INSTALLED_LISTの出力をファイルに追加したくありません。変数に使いたいです。

デフォルトでは、システムにパッケージリスト(INSTALLATION_PACKAGES)がインストールされていることを確認したいと思います。それ以外の場合は、失敗したインストールを記録し、メッセージを記録して終了します。これはifステートメントの外でうまく機能しますが(コメントアウトされた行を参照)、ifステートメント内での実装に問題があります。

助けてくれてありがとう。

INSTALLED_LIST=`dpkg --list`

for i in $INSTALLTION_PACKAGES; do
  apt-get -y install $i
  # echo "$INSTALLED_LIST" | grep -ie "^ii  $i "
  if ! echo "$INSTALLED_LIST" | grep -ie "^ii  $i "  ; then
    echo $i >> $FAILED_INSTALL
  fi
done

答え1

$INSTALLATION_PACKAGESすべてのパッケージをインストールするには、apt-get installすべてのパッケージをインストールします。それからそのうち、失敗したものがあることを確認してください。

apt-get -y $INSTALLATION_PACKAGES
list=$(dpkg -l | grep ^ii)
for i in $INSTALLATION_PACKAGES do
    echo "$list" | grep -w "$i" || echo "$i" >> $FAILED_INSTALL
done

関連情報