程序的控制台输出包括重定向的标准输入?

| 我有一个命令行程序,我会将重定向的输入传递给该文件,并传递给一个文件:
./program < some_input_file > some_output_file
显然,这会写入不包括重定向输入的输出。是否有一些简单的方法来获取程序日志,包括我传递的重定向输入? 我愿意使用外部程序或脚本-我正在bash / linux上运行它。 [编辑] 我正在寻找一种使输出交错的方法-就像程序在终端中运行一样,输入文件只是手动键入     
已邀请:
以下是如何执行此操作的示例:
> cat input.txt
asdf
qwer
zxcv
> tee output.txt < input.txt | cat >> output.txt 
> cat output.txt
asdf
qwer
zxcv
asdf
qwer
zxcv
只需将上面的
cat
替换为您的程序,就可以了。现在,如果您希望它交错,那么您必须做一些不同的事情:
> while read line
  do
      echo $line >> output.txt
      echo $line | cat >> output.txt
  done < \'input.txt\'
> cat output.txt
asdf
asdf
qwer
qwer
zxcv
zxcv
再次用shell脚本替换
cat
。     
如果您的程序在读取下一个输入之前打印了某种提示,则可以使用
expect
与之交互。您的
expect
脚本可以在读取输入行时将其打印出来,并在看到提示后将其发送到程序。这样就可以提供正确的交错输出,而无需每行运行一次程序。     

要回复问题请先登录注册