我想做自动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