将管道输入转储到文件中的简单方法是什么? (Linux)

将管道输入转储到文件中的简单方法是什么? (Linux)

What's a simple method to dump pipe input to a file? (Linux)

我正在寻找一个小的shell脚本,它将所有内容通过管道传递到其中,然后将其转储到文件中。以进行电子邮件调试。 有任何想法吗?


Unix命令tee可以做到这一点。

1
man tee

1
cat > FILENAME


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

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

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

标准的UNIX工具tee可以执行此操作。它将输入复制到输出,同时还将其记录到文件中。


使用Procmail。 Procmail是您的朋友。 Procmail就是用于这种事情的。


使用<> | tee <>将命令<>管道传输到文件<>中。

这也将显示输出。


如果exim或sendmail是写入管道的内容,那么procmail是一个很好的答案,因为它将为您提供文件锁定/序列化,并且您可以将它们全部放入同一文件中。

如果您只想写入文件,则
-tee>/tmp/log。$$
要么
-猫>/tmp/log。$$
可能已经足够了。


如果要使用shell脚本,请尝试以下操作:

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

如果要在脚本中分析它:

1
2
3
4
while /bin/true; do
    read LINE
    echo $LINE > $OUTPUT
done

但是您可以简单地使用cat。如果cat在stdin上得到了某些东西,它将回显到stdout,因此您必须将其通过管道传递给cat> $ OUTPUT。这些将执行相同的操作。第二个也适用于二进制数据。


如果您不在乎输出结果

1
cat - > filename

要么

1
cat > FILENAME

??我想,我不明白这个问题吗?

您不能只是将管道终止为>> ~file

例如

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

将Foobar附加到转储文件(并在必要时创建转储文件)。不需要shell脚本...那是您要找的东西吗?


推荐阅读

    linux脚本命令教学?

    linux脚本命令教学?,标准,数据,系统,脚本,代码,流程,官网,底部,命令,变量,lin

    linux复制命令文件?

    linux复制命令文件?,系统,文件,命令,目录,基本知识,源文件,目标,文件夹,路

    linux下文件均分命令?

    linux下文件均分命令?,管理,情况,系统,工作,信息,地址,命令,目录,单位,设备,L

    linux输入命令星号?

    linux输入命令星号?,密码,网络,系统,通讯,概念,情况,数据,术语,网关,表示,如

    脚本linux上运行命令?

    脚本linux上运行命令?,工具,代码,时间,密码,系统,环境,名字,位置,第三,下来,t

    linux查文件数量命令?

    linux查文件数量命令?,系统,数据,电脑,命令,文件,信息,代码,对比,软件,第三,l

    linux修改脚本的命令?

    linux修改脚本的命令?,系统,密码,服务,工作,工具,环境,信息,百度,代码,脚本,

    linux命令去重文件?

    linux命令去重文件?,系统,工作,命令,信息,数据,环境,代码,文件,目录,操作,Lin

    linux命令行输入取消?

    linux命令行输入取消?,系统,档案,命令,情况,管理,状态,信息,环境,百度,目录,L

    linux脚本命令单引号?

    linux脚本命令单引号?,系统,工作,美元,地址,命令,信息,情况,标准,管理,引号,l

    linux匹配文件名命令?

    linux匹配文件名命令?,系统,时间,发行,位置,工具,软件,名称,盘后,电脑,盘中,l

    改文件名linux命令?

    改文件名linux命令?,名字,软件,文件,命令,位置,系统,文件名,目录,指令,方面,l

    linux运行脚本的命令?

    linux运行脚本的命令?,系统,工具,代码,服务,脚本,状态,密码,环境,位置,暂停,l

    linux命令文件加锁?

    linux命令文件加锁?,数据,密码,系统,设备,代码,地址,名单,信息,数字,统一,请

    linux命令行输入汉字?

    linux命令行输入汉字?,系统,软件,发行,管理,终端,命令,模式,编辑,文件,文本,L

    linux拼接文件命令?

    linux拼接文件命令?,文件,数据,命令,代码,时间,信息,系统,情况,管理,标准,Lin

    linux文件常用命令?

    linux文件常用命令?,工作,地址,信息,系统,命令,目录,标准,情况,管理,常用命

    文件写入linux命令?

    文件写入linux命令?,文件,命令,状态,系统,名称,时间,首次,数据,数字,内容,在l