在终端上显示输出并将最后 10 行添加到日志文件中

Ori*_*ion 3 linux bash

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

hee*_*ayl 5

利用流程替换bashtee

./script.sh |& tee >(tail -10 >file.txt)
Run Code Online (Sandbox Code Playgroud)

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

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