unix shell,重定向输出但保持stdin

Mik*_*ike 4 unix shell io-redirection

我想以下面的方式让shell脚本重定向子进程的stdout

  1. 将stdout重定向到文件
  2. 实时显示过程的输出

我知道我可以做点什么

#!/bin/sh

./child > file
cat file
Run Code Online (Sandbox Code Playgroud)

但那不会实时显示标准输出.例如,如果孩子是

#!/bin/sh

echo 1
sleep 1
echo 2
Run Code Online (Sandbox Code Playgroud)

用户将同时看到"1"和"2"

R S*_*hko 14

用途tee:

./child | tee file
Run Code Online (Sandbox Code Playgroud)

tee 将其标准输入复制到命令行上的任何文件和标准输出.

  • 另一个提示:'tee -a'用于附加到文件,如果你想要,相当于使用>>而不是>正常的shell重定向. (2认同)