我知道我可以返回该行并用以下内容覆盖其内容\r
.
现在我怎样才能进入上一行来改变它呢?
或者有没有办法打印到控制台窗口中的特定光标位置?
我的目标是使用 PHP 创建一些自刷新的多行控制台应用程序。
Use ANSI 转义码 http://en.wikipedia.org/wiki/ANSI_escape_code移动光标。例如:Esc [ 1 F
。要将转义字符放入字符串中,您需要以数字方式指定其值,例如“\x1B[1F”
As 苏乔伊建议 https://stackoverflow.com/questions/6939673/go-back-up-a-line-in-a-linux-console/6939803#6939803, 您可以使用PHP ncurses http://php.net/manual/en/book.ncurses.php以更抽象的方式移动光标。
虽然大多数“控制台”允许 ANSI 转义码,但其他类型的终端使用不同的字符序列,ncurses
提供独立于终端的标准化API。快速浏览一下/etc/termcap
(进而man terminfo
) 如果你感兴趣。
Update: 拉斯·维尔泽纽斯的回答 https://stackoverflow.com/questions/6939673/go-back-up-a-line-in-a-linux-console/6940005#6940005对背景有一个有用的总结。几年前我也写过一篇短文终端 http://www.redgrittybrick.org/terminals/.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)