배열에서 패키지 목록을 읽고 해당 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