我们正在使用一些第三方交互式命令行工具,并用于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/。对于制作演示和教程很有用。)