这里文件 – 复制标准输出到标准输出?

我想做自动testing我的脚本之一,这里的文件几乎完美。 如果能够将STDIN复制到STDOUT,那么将会很好,所以就好像在将这个文档压入脚本时一样(在每次运行中都看到input)。 这很容易做到吗?

我现在(不显示input,因为用户会input和看到,只显示输出):

#!/bin/sh make && ./proj <<- EOF i 3 i 9 i 55 i 345 t s 33 s 455 i 44 i 99 t q EOF 

你可以用tee复制它,然后使用fd3将它隐藏在你的脚本中,像这样:

 { make && tee /dev/fd/3 <<EOF | ./proj 1 3 i 9 EOF } 3>&1 

…但是除了bash的版本之外,我不会相信任何其他东西。 达思关于使用临时文件的build议可行,或者如果没有太多的input,你可以用一个variables做同样的事情:

 input='1 3 i 9' make && echo "$input" && echo "$input" | ./proj 

…虽然这也可能会打破一些无法应对变数值的换行符的炮弹。

你想要cat

您也可以使用redirect。 将testinginput保存到test.txt ,然后make && ./proj < test.txt