我正在创建一个基于浏览器的应用程序,用于与我的本地终端交互,我在终端中使用script
命令(实际上是在Java进程中)来输入和捕获输出以显示在浏览器。
我发现script
进程内的虚拟终端默认有80列,当输入行超过该数量时,我看到意外行为。当它达到长度限制时,它会添加一个空格,然后返回一个空格,然后继续该行。例如,如果我输入以下内容:
user_name ~/my/current/directory$ ls /some/really/long/path/to/some/directory/somewhere
以下是实际转录的内容(并转发到我的浏览器应用):
user_name ~/my/current/directory$ ls /some/really/long/path/to/some/directory/so ^Mmewhere
请注意so ^Mmewhere
而不是somewhere
。
当我在此之后点击up
箭头以检索最后一个输入时,我得到了不同的结果:
user_name ~/my/current/directory$ ls /some/really/long/path/to/some/directory/som^Mmewhere
这一次,它不是额外的空格字符,而是重复m:som^Mmewhere
。
这里发生了什么?是script
命令真的是为人类读者生成文本输出,因此有利于可视化格式而不是可执行性?是否有script
的替代方案可以更好地用于我的目的?
修改
我应该提到我在macOS Sierra中这样做。不确定这是否有所作为。