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