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

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

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

1 ответ

Решение

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

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


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

Другие вопросы по тегам