PDA

Показать полную графическую версию : Чтение вывода команды и выполнение действия(bash).


daniil98797
03-04-2014, 23:42
Помогите написать небольшой скрипт, который при наличии определенного текста в выводе одной команды, выполнял бы вторую.
Например:
Выполняется apt-get install gcc.
И если в выводе встречается слово Error, то автоматически выполняется apt-get update(Вторая команда).
Заранее спасибо.

vadblm
25-04-2014, 15:18
Выполняется 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