對使用者輸入運行行編輯(腳本命令)

對使用者輸入運行行編輯(腳本命令)

我用該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

相關內容