Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: [РЕШЕНО] Редирект внутри bash-скрипта  (Прочитано 1356 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ArcFi

  • Автор темы
  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Задачка такая...
bash-скрипт, одним файлом, требуется запускать без редиректов.
Внутри скрипта, грубо говоря, много команд, которые могут давать как положительный, так и отрицательный результат.
Для всех команд требуется перенаправлять, к примеру, stdout в "$0.log", stderr в "$0.err".

Как бы выкрутиться, чтобы вначале скрипта объявить "глобальный редирект" для всех нижеследующих команд.

Вариант со скобками "()" возможно будет работоспособен, но выглядит как-то неэстетично.

Также хотелось бы избежать вариантов с алиасами, промежуточными скриптами-врапперами и мануального редиректа при вызове данного скрипта.

Существуют ли другие способы?
« Последнее редактирование: 02 Июля 2010, 21:59:36 от ArcFi »

Оффлайн Lion-Simba

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Re: Редирект внутри bash-скрипта
« Ответ #1 : 30 Июня 2010, 21:10:47 »
Быстрый гуглинг навёл на это:
http://software.allfaq.org/forums/t/103794.aspx

#!/bin/bash

exec > out 2> err
echo "hello"
dfdfs
echo "again"

В итоге файл out содержит
hello
again

А файл err - сообщение о том, что "dfdfs" - полная ерунда. :)
Оказываю индивидуальную платную техподдержку широкого профиля. Обращаться в ЛС или Jabber.

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Редирект внутри bash-скрипта
« Ответ #2 : 01 Июля 2010, 08:30:35 »
exec > out 2> err
Очень красиво.

Оффлайн ArcFi

  • Автор темы
  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
[РЕШЕНО] Редирект внутри bash-скрипта
« Ответ #3 : 02 Июля 2010, 21:58:21 »
Lion-Simba, в точку, благодарю. ;)

 

Страница сгенерирована за 0.032 секунд. Запросов: 26.