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

时间:2010-05-17 17:43:39

标签: unix shell io-redirection

我希望shell脚本以下列方式重定向子进程的stdout

  1. 将stdout重定向到文件
  2. 实时显示流程的输出
  3. 我知道我可以做类似

    的事情
    #!/bin/sh
    
    ./child > file
    cat file
    

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

    #!/bin/sh
    
    echo 1
    sleep 1
    echo 2
    

    用户会看到同时打印“1”和“2”

2 个答案:

答案 0 :(得分:14)

使用tee

./child | tee file

tee会将其标准输入复制到命令行上的任何文件以及标准输出。

答案 1 :(得分:-1)

我使用:海绵,来自moreutils http://linux.die.net/man/1/sponge

你可以这样做:

$ grep something largefile |海绵largefile