crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> [bash] Проверка выполнения команды и перенаправление вывода
igor_bogomolov
  опции профиля:
сообщение 9.9.2011, 13:07
Сообщение #1


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Задача следующая, мне нужно проверять результат выполнения команд, при этом записывать их вывод одновременно и на консоль и в файл.

К примеру, следующий код записывает вывод команды в лог-файл и проверяет результат её выполнения, но не печатает ничего на консоль
Раскрывающийся текст
check_success() {                                                                                                                                                                                                    
   if [ $? -ne 0 ]                                                                                                                                                                                                  
   then                                                                                                                                                                                                              
      exit 1                                                                                                                                                                                                        
   fi                                                                                                                                                                                                                
}                                                                                                                                                                                                                    
                                                                                                                                                                                                                    
BUILD_LOG=/tmp/build.log

tar xjf xyz.tar.bz >> $BUILD_LOG 2>&1
check_success
Если изменить как написано ниже, то вывод команды будет писаться и на консоль и в файл, но я уже не могу проверить корректность ее завершения (т.к. проверяется уже не команда tar, а tee которая всегда завершается корректно, да и меня совершенно не интересует)
tar xjf xyz.tar.bz  2>&1 | tee $BUILD_LOG
check_success


Как быть?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Sokoloff
  опции профиля:
сообщение 9.9.2011, 13:59
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 237
Регистрация: 1.4.2009
Из: Москва
Пользователь №: 654

Спасибо сказали: 50 раз(а)




Репутация:   11  


В свое время сталкивался точно с такой проблемой. Вот здесь несколько решений.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 9.9.2011, 14:05
Сообщение #3


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Спасибо, то что надо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.11.2024, 15:46