Распечатать STDOUT в середине 2 трубы в солярисе (Баш) - PullRequest
0 голосов
/ 07 октября 2010

http://www.webdesignerdepot.com/rss.htm

У меня та же проблема. Эта команда:

. / Somescript.sh> ../log/scriptlog.log

требует вывода команды go to std out. но внутри скрипта

команда | mailx -s "Subject" receient@somedomain.tld

я хотел бы сделать что-то вроде:

команда | тройник> / dev / stdout | mailx -s "Subject" receient@somedomain.tld

Если выходные данные команды отправляются на стандартный вывод (для перенаправления в файл ..log / scriptlog.log)

, а также в стандартный ввод для команды mailx.

Есть ли способ сделать это?

Ответы [ 3 ]

1 голос
/ 08 октября 2010
exec 3>&1
command | tee /dev/fd/3 | mailx ...

или, используя подстановку процесса:

command | tee >(mailx ...)
1 голос
/ 07 октября 2010

tee уже отправляет на стандартный вывод.

... | tee -a log/scriptlog.log | ...
0 голосов
/ 09 октября 2010

попробую процесс подстановки.Для ясности, у меня есть скрипт оболочки cron'd.Запись cron похожа на: /usr/script/myscript.sh> /usr/log/myscript.log

внутри скрипта есть строка, похожая на: command |mailx -s "Subject" получатель

Поскольку стандартный вывод 'command' передается в команду mailx, он появляется в файле журнала 'myscript.log', но я хочу его.

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

...