Альтернатива тройника (ввод пользователя пропущен)

270
Betlista

мы используем какой-то сторонний интерактивный инструмент командной строки, и мы используем teeдля регистрации того, что сделал пользователь - чтобы проверить позже, если это необходимо ...

Инструмент работает так, как он спрашивает, какое действие пользователь хочет выполнить, и пользователь выбирает что-то и продолжает с подменю, или действие выполняется.

Недавно (когда нам нужно было проверить такой журнал) мы поняли, что пользовательских входов там нет. Есть ли альтернатива - как этого добиться?

Когда я попытался смоделировать инструмент с:

$ cat r.sh read -p "Enter some text: " text echo $text  echo -n "Enter another text: " read text2 echo $text2 

Я проверил, и это вывод

$ ./r.sh | tee run.log Enter some text: abc abc Enter another text: def def  $ cat run.log abc Enter another text: def 

В идеале я хотел бы, чтобы пользователь видел то же, что и вы.

Решение:

Если кому-то это нужно, я проверил

script -c ./r.sh script.log 

и это сработало, как и ожидалось + я протестировал с этим сторонним инструментом.

0

1 ответ на вопрос

3
grawity

Вы могли бы использовать scriptдля этого; он создает вложенный tty и записывает все, что в нем происходит.

Если вы также укажете, --timing=…он может даже воспроизводить "видео" полноэкранных интерактивных программ (таких как текстовые редакторы и тому подобное).


(Для полноты - есть еще один аналогичный инструмент asciinema, который является размещенным сервисом, который автоматически публикует записи по адресу https://asciinema.org/ . Полезно для создания демонстраций и учебных пособий.)

Я копался со сценарием. Один бит, который я обнаружил отсутствующим, был «неинтерактивно», заканчивая запись. Ctrl D делает это в интерактивном режиме - но не уверен, что бы просто закончить это как часть скрипта. Journeyman Geek 7 лет назад 0
`script` запускает оболочку _nested_ (или другую программу), и запись завершается при выходе из этой оболочки или программы. Это все, что нужно сделать. grawity 7 лет назад 0
ах, так что выход будет работать? Journeyman Geek 7 лет назад 0
Сценарий выглядит так, как я хотел, потребуется некоторое время, чтобы проверить больше (я проверял с тем, что я указал, и, кажется, все в порядке), но пока это вариант ... Betlista 7 лет назад 0

Похожие вопросы