从标准输出写入不同的文件(无屏幕打印)

从标准输出写入不同的文件(无屏幕打印)

如何将 $Log_general 写入 Log1 和 Log2,而不在屏幕上打印任何内容?

备注:Log1 和 Log2 文件需要与 $Log_general 分开更新,我不想将 Log1 复制到 Log2!!

我尝试了以下方法,但只Log2更新了

 echo $Log_general 1>Log1 1>Log2

或者

./my_script.sh 1>Log1 1>Log2

并且存在以下问题,即$Log_general输出出现在屏幕上,而我的目的仅是写入文件Log1Log2

 echo  $Log_general | tee -a Log1 Log2

答案1

您应该能够使用该tee命令首先将输出传送到一个文件和标准输出,然后将标准输出传送到第二个文件。例如:

echo $Log_general | tee Log1 > Log2

编辑:

在我发布之前我没有看到你的编辑 Jennifer,但是上面的用法没有输出到我的屏幕上(我正在运行 cygwin,而不是 Linux 终端 - 希望输出是相同的)

答案2

./bash.sh | tee -a /path/to/firstfile 

如果您尝试将 bash 脚本文件的输出附加到单个文件,那么上述代码将会起作用。

./bash.sh | tee -a /path/to/firstfile |tee -a /path/to/secondfile

第二段代码应该可以将相同的输出写入两个不同的文件。我正在使用 Xubuntu,它对我来说很有效。

相关内容