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


0

мы используем какой-то сторонний интерактивный инструмент командной строки, и мы используем 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

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

Ответы:


3

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

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


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


Я копался со сценарием. Один бит, который я обнаружил пропавшим, был «неинтерактивно», заканчивая запись. Ctrl D делает это в интерактивном режиме - но не уверен, что бы просто закончить это как часть скрипта.
подмастерье Компьютерщик

scriptзапускает вложенную оболочку (или другую программу), и запись завершается при выходе из этой оболочки или программы. Это все, что нужно сделать.
Гравитация

ах, так выход будет работать?
подмастерье Компьютерщик

Сценарий выглядит так, как я хотел, потребуется некоторое время, чтобы протестировать больше (я тестировал с тем, что я указал, и, кажется, все в порядке), но пока это вариант ...
Betlista
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.