Tee 替代方案(错过用户输入)

Tee 替代方案(错过用户输入)

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

相关内容