我正在寻找一个小的shell脚本,它会将任何管道传输到它中,然后将其转储到文件中......用于电子邮件调试。 有任何想法吗?

===============>>#1 票数:24 已采纳

unix命令tee就是这样做的。

man tee

===============>>#2 票数:10

cat > FILENAME

===============>>#3 票数:9

你不是一个人需要类似的东西......事实上,有人在几十年前想要这个功能并开发了三通 :-)

当然,您可以使用>字符将stdout直接重定向到任何shell中的文件:

echo "hello, world!" > the-file.txt

===============>>#4 票数:5

标准的unix工具三通可以做到这一点。 它将输入复制到输出,同时将其记录到文件中。

===============>>#5 票数:2

使用Procmail。 Procmail是你的朋友。 Procmail是出于这种情况而制作的。

===============>>#6 票数:1

如果要在脚本中分析它:

while /bin/true; do
    read LINE
    echo $LINE > $OUTPUT
done

但你可以简单地使用猫。 如果cat在stdin上得到某些东西,它会将它回显到stdout,所以你必须将它传递给cat> $ OUTPUT。 这些也会这样做。 第二个也适用于二进制数据。

===============>>#7 票数:1

如果你想要一个shell脚本,试试这个:

#!/bin/sh
exec cat >/path/to/file

===============>>#8 票数:1

如果exim或sendmail正在写入管道,那么procmail是一个很好的答案,因为它会给你文件锁定/序列化,你可以把它全部放在同一个文件中。

如果你只想写入文件,那么 - tee> /tmp/log.$$或 - cat> /tmp/log.$$可能就足够了。

===============>>#9 票数:1

使用<<command>> | tee <<file>> 用于将命令<<command>>到文件<<file>> <<command>> | tee <<file>> <<file>>

这也将显示输出。

===============>>#10 票数:0

咦? 我猜,我不明白这个问题?

你不能把你的管道结束到>> ~file

例如

echo "Foobar" >> /home/mo/dumpfile

将Foobar附加到dumpfile(并在必要时创建dumpfile)。 不需要shell脚本......这就是你要找的东西吗?

===============>>#11 票数:0

如果你不关心输出结果

cat - > filename

要么

cat > filename

  ask by Alex Fort translate from so

未解决问题?本站智能推荐:

1回复

使用Exim中的管道进行邮件路由

我正在寻找向多个目的地发送电子邮件,即一个用户指定的电子邮件地址,另一个用于PHP脚本。 通过网络浏览,我得出结论,我必须在路由器中使用管道并传输我的邮件代理的配置,即我的情况下的Exim。 我尝试但未能在我的Exim配置中嵌入管道传输。 服务器导致管道传输失败。 需要帮助才能解决此问题
2回复

管道编程失败,但在SSH控制台中运行正常

我正在尝试让Rails 4.1接收退回电子邮件,但要达到这一点确实非常困难。 当以root用户身份登录时,我可以在SSH控制台中运行以下命令,但是当我将其放入/ etc / valiases文件时,我会从脚本中看到“以下地址失败”的回弹。 runuser -l useraccount -c
1回复

将文件转发到php-错误127,无法执行或命令不存在?

我正在尝试将所有发送到hi@mydomain.com的电子邮件发送到脚本。 我正在使用exim和一个.forward文件。 这是我的转发文件,位于“ hi”目录中: 进出口过滤器 管道“ /home/web/servers/mydomain.com/htdocs/script
1回复

使用WHM Cpanel更改Exim文件

嗨,我开始在服务台上使用osTicket,并且我能够成功完成Email管道,但是即使创建了工单,用户也会收到:邮件传递失败:正在将邮件返回给发件人。 在osTicket中,它说要更改出厂文档,但是我有WHM,但我不知道如何更改它。 有人可以告诉我如何使用WHM编辑器更改以下内容
1回复

Linux Shell脚本从Exim队列中删除2天的冻结电子邮件

我想将shell脚本放在cron作业下,它将执行以下操作: 1)删除位于Exim队列中的两天旧邮件,这些邮件是退回/冻结邮件,将不会被发送。 脚本不得删除合法的消息,而只是等待其时间传递。 2)删除来自无效发件人(例如null或<>)和/或发送给无效收件人nobody或
3回复

Linux管道作为输入和输出

我想在Linux操作系统上的C程序内执行以下操作: 使用syscall(或2)创建PIPE 使用exec()执行新流程 将流程的STDIN连接到先前创建的管道。 将流程的输出连接到另一个PIPE。 这样做的目的是为了性能目的而避免访问任何驱动器。
5回复

如何在linux上管道输入到sublimetext?

如何从stdin接收文本到sublimetext编辑器? 使用vim它的工作原理如下: 同样适用于gedit,使用内容创建一个新文档。 Sublimetext似乎只是在一个新标签中开始编辑一个名为“ - ”的文件,还有其他一些shell技巧可以使用吗?
4回复

在linux编程中通过管道在进程之间发送链表结构的最佳方法是什么

我尝试在来自同一父级的子进程之间发送链表。 Child1需要在列表中找到第一个素数并将其删除,然后将其倍数发送给Child2。 Child2执行相同操作,它发送到Child3,ChildN执行相同操作并发送到Child1。 但是,我尝试在两者之间发送地址数据而不是所有数字,但这是一种正确的
1回复

Crontab没有管道到文件(LINUX)

cronjob不会将另一个脚本的输出传递给文件,但它可以执行它(不是同一个用户,两个文件的chmod设置为777)。 我希望它将“echo -e 1 \\ n \\ n \\ nq”传递给脚本Menu,然后将输出输出到文件中。 Menu的输出只是文本。
2回复

简单的Linux管道程序,没有收到数据

我有一个简单的Linux C程序,我正在编写,以帮助我更好地理解IPC,现在我正在尝试用管道构建它。 我有一个代码库,我在两个不同的终端窗口中作为两个不同的可执行文件运行(因此它们可以相互通信)。 但是我没有做正确的事情,因为我从来没有得到任何数据可读,但我不确定是什么......