daniil98797 |
03-04-2014 23:42 2332825 |
Чтение вывода команды и выполнение действия(bash).
Помогите написать небольшой скрипт, который при наличии определенного текста в выводе одной команды, выполнял бы вторую.
Например:
Выполняется apt-get install gcc.
И если в выводе встречается слово Error, то автоматически выполняется apt-get update(Вторая команда).
Заранее спасибо.
|
Цитата:
Цитата daniil98797
Выполняется 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
|
Время: 16:45.
© OSzone.net 2001-