어쩌면 내가 잘못 생각하고 있을 수도 있으므로 제안을 받아들일 준비가 되어 있습니다. 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