Показывать ввод и вывод при чтении и интерпретации файла - PullRequest
0 голосов
/ 08 марта 2012

Чтобы проверить интерфейс командной строки, я хочу прочитать файл и отправить его содержимое в 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 Ответ

1 голос
/ 08 марта 2012

На некоторых платформах вы можете указать входные данные в / 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 по умолчанию равен '>', и если содержимое PS2 содержит косые черты, которые вам понадобятсяизменить команды sed для использования разделителя, который отсутствует в PS2.)

...