对用户输入运行行编辑(脚本命令)

对用户输入运行行编辑(脚本命令)

我用该script程序记录了一个交互式会话:

$ script
$ echo<-<-<-<-printf "hello\n"
$ exit

该序列<-代表退格字符。

我想要以下内容作为输出:

$ printf "hello\n"
$ exit

但实际结果包含所有单独的击键(用 查找cat --show-nonprinting)。

我尝试使用命令逐行阅读read。它确实编辑了退格键,但它也删除了命令提示符,并且似乎它转换\nn.

我正在寻找一种方法来让用户在屏幕上看到文本(命令提示符、编辑的输入和命令输出——颜色并不重要)。


作为参考示例输出:

^[[?2004l^M^[[?2004h$ echo^H^[[K^H^[[K^H^[[K^H^[[Kprintf "hello\n"^M
^[[?2004l^Mhello^M
^[[?2004h$ exit^M
^[[?2004l^Mexit^M

答案1

国际大学学院,ANSI2txt将会完全按照您的意愿行事:

$ ansi2txt typescript > ANSI2TXT
$ cat ANSI2TXT
$ printf "hello\n"
hello
$ exit

Script done on Wed 15 Apr 2020 07:48:55 PM CEST

相关内容