Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование в *nix (http://forum.oszone.net/forumdisplay.php?f=35)
-   -   Чтение вывода команды и выполнение действия(bash). (http://forum.oszone.net/showthread.php?t=280299)

daniil98797 03-04-2014 23:42 2332825

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

vadblm 25-04-2014 15:18 2342918

Цитата:

Цитата 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.

Время: 16:45.
© OSzone.net 2001-