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

3

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

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


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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .