Я ищу небольшой скрипт оболочки, который возьмет что-нибудь в нем, и выгрузит его в файл .. для отладки электронной почты. Есть идеи?Что такое простой способ сброса ввода в файл? (Linux)
ответ
Команда команды unix делает это.
man tee
Использование Procmail. Procmail - ваш друг. Procmail сделан для такого рода вещей.
cat > FILENAME
Стандартный Unix инструмент тройник может это сделать. Он копирует ввод на вывод, а также записывает его в файл.
Вы не одиноки в необходимости что-то подобное .. на самом деле, кто-то хотел я несколько десятилетий назад и разработали tee :-)
Конечно, вы можете перенаправить стандартный вывод непосредственно в файл в любой оболочке с помощью> знак:
echo "hello, world!" > the-file.txt
Да? Наверное, у меня нет вопроса?
Разве вы не можете просто закончить свою трубу в >> ~file
Например
echo "Foobar" >> /home/mo/dumpfile
добавит Foobar к DUMPFILE (и создать дамп-файл, если это необходимо). Нет необходимости в скрипте оболочки ... Это то, что вы искали?
Если вы хотите проанализировать его в подлиннике:
while /bin/true; do
read LINE
echo $LINE > $OUTPUT
done
Но вы можете просто использовать кошку. Если кошка получает что-то на stdin, она будет эхом выводить его на stdout, поэтому вам нужно будет передать его cat> $ OUTPUT. Они будут делать то же самое. Второй работает и для двоичных данных.
, если вы не заботитесь о выводе результата
cat - > filename
или
cat > filename
Если вы хотите скрипт, попробуйте следующее:
#!/bin/sh
exec cat >/path/to/file
Если exim или Sendmail это то, что записывается в трубу, тогда procmail - хороший ответ, потому что он даст вам блокировку/сериализацию файлов, и вы c положите все в один файл.
Если вы просто хотите записать в файл, а затем - тройник> /tmp/log.$$ или - кошка> /tmp/log.$$ может быть достаточно хорошим.
< < command >> | tee < file >>
Это также покажет выход.
Если бы это зависело от меня, то я бы «принял» этот ответ – 2008-09-16 20:36:31