在读取文件并解释时显示输入和输出

时间:2012-03-08 14:17:38

标签: unix pipe

要测试命令行界面,我想读取文件并将其内容发送到CLI。这可以通过

轻松完成
cat file | ./my_program

./my_program < file

唯一的问题是它的输出。它是

> command not found
> command not found
>

而不是

> a
command not found
> b
command not found
> quit

当要读取的文件包含三行

a
b
quit

是否也可以打印输入并将输出移动到下一行?

1 个答案:

答案 0 :(得分:1)

在某些平台上,您可以将输入发送到/ dev / tty:

< file tee /dev/tty | ./my_program

请注意,这将为您提供输出未通过提示区分的输出:

a
command not found
b
command not found
quit

但你可以很容易地在$ PS2前面添加所有输入行:

< file sed "s/^/$PS2/" | tee /dev/tty | sed "s/^$PS2//" | ./my_program

(PS2默认为'&gt;',如果PS2的内容包含任何正斜杠,则需要修改sed命令以使用PS2中未出现的分隔符。)