一些程序如何编辑终端上显示的内容(选择一个随机的例子,程序'sl')? 我在想这里的Linux终端,它也可能发生在其他操作系统中,我不知道。 我一直以为一旦显示了一些文字,它就会留在那里。 如何在不重绘整个屏幕的情况下进行更改?

===============>>#1 票数:6

根据您发送控制seuqences的终端。 常见的序列例如是esc [; H将光标发送到特定位置(例如,在Ansi,Xterm,Linux,VT100上)。 但是,这将随用户的类型或终端而变化... curses(与terminfo文件一起)将为您包装该信息。

===============>>#2 票数:5

试试这个shellcript

#!/bin/bash
i=1
while [ true ]
    do
            echo -e -n "\r $i"
            i=$((i+1))
    done

-n选项会阻止换行符...而\\ r \\ n会回滚...你会一次又一次地写入同一行 - 没有滚动或者什么都没有

===============>>#3 票数:4

如果终止使用回车符('\\ r')而不是换行符('\\ n')发送到终端的行,它会将光标移动到当前行的开头,允许程序打印更多文本在之前印刷的东西之上。 我偶尔使用它来获取长任务的进度消息。

如果您需要进行更多的终端编辑,请使用ncurses或其变体。

===============>>#4 票数:4 已采纳

许多应用程序使用curses库或某种语言绑定它。

对于重写单行,例如更新进度信息,通常由转义序列“\\ r”指定的特殊字符“ 回车 ”可以将光标返回到当前行的开头,允许后续输出覆盖以前写在那里。

===============>>#5 票数:2

有些字符可以发送到终端,将光标移回。 然后可以覆盖文本。

有一个列表在这里 注意“移动光标的东西”行。

===============>>#6 票数:1

下士已经回答了下一步如何做到这一点。 为了便于开发, curses库提供了比简单地将字符发送到终端更高级别的控制。

===============>>#7 票数:1

NCurses是一个跨平台的库,可以让您在智能终端上绘制用户界面。

===============>>#8 票数:0

在@Corporal Touchy的答案的基础上,有一些库可以为你处理一些这样的功能,比如curses / ncurses

===============>>#9 票数:0

我同意danio,ncurses是要走的路。 这是一个很好的教程:

http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/

  ask by Jarek translate from so

未解决问题?本站智能推荐:

11回复

清除终端屏幕的真实

在终端上使用clear命令只会使用户误以为屏幕已被清除...使用鼠标滚动时,您仍然可以看到以前命令的输出。 当您淹没在文本海啸中时,这将使生活变得困难。 可以在Internet上找到的各种解决方案(转义码等)只是clear命令已经完成的工作的变体。 那么,如何真正清除Linux中终
1回复

如何直接在终端中更改屏幕单元的颜色?

我知道我可以使用\\e[31;41m这样的转义序列来更改以下输出到终端的颜色。 但是如何直接更改屏幕单元的颜色? 在以下两种情况下,我需要它: 我想返回(通过光标移动的转义序列),然后将屏幕上已经存在的一个字符染色。 我想将屏幕单元格设置为仅彩色,并希望其中不包含任何字符。
5回复

如何在切片的“屏幕”终端中上下滚动

我刚刚安装了screen并且喜欢将linux终端分成多个部分的想法。 但是我无法弄清楚一件事:当我在screen时如何上下滚动。 当我使用常规的Linux终端时,可以通过Shift + Pg Up或Shift + Pg Dn`来实现。 但不幸的是,它在分割终端中不起作用。 这就是我说
1回复

循环更新Linux的终端屏幕

我在窗口中编写了以下简单代码,并在循环的每个步骤中以CMD正常打印点: 但是Linux中的这段代码不会在循环的每一步中都打印点,它会在打印所有点后等待5秒钟: 如何在每个循环步骤中更新终端输出屏幕? 谢谢 。
2回复

用户登录后在终端中打开屏幕

当用户使用Putty登录到我的Debian服务器时,我需要执行以下操作: 它将自动执行命令screen -r MyWindow ,并且 用户将无法离开屏幕窗口,因此我希望用户禁用所有命令。 我怎样才能做到这一点?
1回复

Bash终端:如何将Ctrl + K绑定到Kill-Whole-THEN透明屏幕? [关闭]

基本上我想在我的cygwin linux终端中设置一个快捷方式(ctrl + k) 绑定'“ \\ Ck”:整行杀 然后立即运行 别名cls =“ echo -e'\\ 033c \\ c'” 两者都可以单独工作,但是我想用一个键盘快捷键来完成。 提前致谢!
1回复

终端中的蓝牙

我想在不使用Bluetooth GUI的情况下查看终端中的Bluetooth适配器详细信息。 最初,终端和GUI中的蓝牙均关闭。 我在终端中用于不同功能的命令 查看蓝牙的状态(在某些情况下它将显示活动/不活动和状态,在某些情况下仅显示活动/不活动) 开启蓝牙 关闭蓝
2回复

Linux gedit和终端

每当我使用gedit编写代码时,我都可以访问gedit或终端,但不能同时访问两者。 例如,当我键入gedit hello.c时,linux会在gedit中显示文件hello.c。 现在,虽然gedit仍在显示hello.c但是如果没有在gedit中关闭hello.c,我就无法在终端中输入任何
1回复

终端输出变黑

简短版:我有一个程序可以无限循环地向终端打印连续的整数。 在某个时候,终端变黑了,看不到任何输出,但是我仍然可以执行命令。 详细资料 : 我在PCG中阅读了此答案 ,并想在Python中尝试一下。 这里是: #!/bin/python2 class Dier(object):
1回复

winecfg完全通过终端

在这里也找不到其他地方的答案。 有没有办法仅通过终端使用和控制winecfg? winecfg总是弹出一个窗口,但是我希望仅通过终端(操作系统和登台选项)来设置首选项。 对我来说,替代方法是配置文件,该文件具有我可以编辑的首选项。 感谢您的回复