grep переменная в выражении if
Возможно, я приближаюсь к этому неправильно, поэтому я открыт для предложений. Я пытаюсь не добавлять вывод файла INSTALLED_LIST в файл. Я хочу использовать его внутри переменной.
В основном, я хочу проверить, установлен ли список (INSTALLATION_PACKAGES) пакетов в системе. Если нет, запишите, какие из них не удалось установить, запишите информацию и выйдите. За пределами оператора if это работает отлично (см. Пронумерованную строку), у меня просто возникают проблемы с его выполнением в инструкции if.
- Как вы обрабатываете несколько правил валидации при различных пользовательских вводах?
- Несколько входов в одной команде
- Разделить команду и аргументы и вставить в переменную в сценарий bash
- Невозможно выполнить сценарий Bash, если / while
- Bash: Объем переменных в цикле for с использованием тройника
Thx заранее за вашу помощь.
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
One Solution collect form web for “grep переменная в выражении if”
Если вы хотите, чтобы все пакеты в $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