配列からパッケージのリストを読み、そのRPMがインストールされているかどうかを知らせるコードを書きたいです。
ARRAY=(
pkg-config
python
python-devel
python-libs
readline
renderproto
sqlite
tcl
tk
zlib
)
for i in `echo ${ARRAY[@]}`
do
rpm -q $i
done
このコードは正しく機能しません。出力がok rpm named foobar is installed
またはになりたいですrpm named foobar is not installed
。
どうすればいいですか?
答え1
このコマンドは、rpm
クエリされたパッケージがインストールされているかどうかによってシャットダウン状態が変わるように見えるため、次の方法で使用できますif
。
for package in "${ARRAY[@]}"; do
if rpm -q $package >/dev/null 2>/dev/null; then
echo "Package $package is installed."
else
echo "Package $package is not installed."
fi
done