Показать полную графическую версию : Чтение вывода команды и выполнение действия(bash).
daniil98797
03-04-2014, 23:42
Помогите написать небольшой скрипт, который при наличии определенного текста в выводе одной команды, выполнял бы вторую.
Например:
Выполняется apt-get install gcc.
И если в выводе встречается слово Error, то автоматически выполняется apt-get update(Вторая команда).
Заранее спасибо.
Выполняется apt-get install gcc.
И если в выводе встречается слово Error, то автоматически выполняется apt-get update(Вторая команда). »
Имхо элегантнее не парсить вывод команды, а воспользоваться кодом статуса завершения (exit status code). Самый простой вариант — если код завершения не нулевой, значит произошла какая-то ошибка, делаем то-то, например:
#!/bin/bash
apt-get install gcc
if [ $? -ne 0 ] ; then
apt-get update
fi
Можно усложнить, разбирая коды, которые разные для разных ошибок, например apt-get возвращает код 100, если искомый пакет не найден:
root@xxx:~# apt-get install foofoo
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
E: Не удалось найти пакет foofoo
root@xxx:~# echo $?
100
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC