显示终端上的输出并将最后10行拖尾到日志文件

时间:2017-07-04 10:38:21

标签: linux bash

我需要运行一个脚本并将全部内容输出到终端。 然后我想从终端输出中获取最后10行并将它们放在日志文件中。 我尝试过使用./script.sh 2>&1 | tail -10 > log.log 但是这会停止输出到终端。

2 个答案:

答案 0 :(得分:1)

为此你必须使用tee命令。然后你可以管道到一个文件和你的控制台。

ls -a | tee output.file

答案 1 :(得分:1)

利用bash

利用tee的流程替代
./script.sh |& tee >(tail -10 >file.txt)

|&是通过管道发送STDOUT和STDERR的快捷方式。

tee将STDIN重定向到STDOUT和作为参数给出的文件 - 我们使用进程替换来获取文件描述符并使用tail -10 >file.txt内部流程替换以保存所需内容。