要测试命令行界面,我想读取文件并将其内容发送到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
是否也可以打印输入并将输出移动到下一行?
答案 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中未出现的分隔符。)