问题标签 [tput]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
curses - tput 序列不会导致明显变化?
我经常不得不通过 ssh 连接到一个远程系统,如果遇到 N 分钟的不活动(其中 N 相当小),它将终止我的连接。我已经厌倦了被开除并失去我的工作/背景,例如,我去网上查找了一些东西并且花了一点时间。
我一直在尝试想出一个可以在后台运行的简单脚本,它只是不时向终端发送少量输出,所以我不会被注销。
当然,理想情况下,我希望输出不会干扰我正在做的任何事情,无论我在做什么——纯文本、诅咒等等。
所以我正在寻找一些可以重置 I/O 计时器的 tput 功能,但会导致屏幕外观出现问题。我发现了很多接近的东西,但到目前为止,如果时机错误,所有这些都可能导致故障。
我目前正在做的是
(保存光标,恢复光标)。到目前为止,这对我很有帮助,但我敢肯定,在某些执行自己的保存/恢复和搞砸的诅咒程序之间发生这种情况只是时间问题。
cub 和/或 cuf(光标向后,光标向前)看起来几乎可以工作。如果他们中的任何一个在给定 0 参数时根本没有移动光标,那正是我正在寻找的。但是,对我来说不幸的是,0 的行为与 1 完全相同(光标向任何方向移动一个位置)。至少,对于我正在使用的终端,它确实如此。
效果很好,除非它发生在光标位于屏幕左边缘时。在这种情况下,cub1 什么都不做,但是 cuf1 会移动光标。
如果我把它们颠倒过来:
那么只有当光标位于屏幕的右边缘时发生这种情况,我才会遇到麻烦,而且我想这种情况可能发生的频率较低。仍然...
如果我能弄清楚如何获取光标的当前位置,我会得到它,然后用它来杯子到它已经在的位置。但似乎没有办法获取光标的当前位置。(或者我只是错过了它?)
如果我的终端支持 mrcup,参数为 0 的 mrcup可能有效,但它不支持。
像
和
什么都不会进入终端,所以不要重置不活动计时器。
似乎应该有一些简单的方法。
有任何想法吗?
tput - tput:终端属性:没有这样的设备或地址
tput:终端属性:Enthought Canopy 中没有这样的设备或地址。我在尝试
所以得到错误:
我该如何纠正这个 tput 问题?
bash - 如何获取 tput smcup/rmcup 设置的屏幕状态?
虽然我知道tput rmcup
从“备用屏幕”(在 中称为“杯子模式” man 5 terminfo
)返回并恢复保存的屏幕,但它确实具有重新定位光标的副作用。
因此,如果tput smcup
被调用,则tput rmcup
恢复屏幕并重新定位光标,但如果您随后键入更多命令或按回车键几次然后tput rmcup
再次使用,则光标将返回到原始保存的位置。
一个用例是在bash
[使用scriptreplay
] 回放终端记录的脚本中:如果脚本在没有 [相当于] 调用的情况下提前结束,tput rmcup
那么我希望能够在我的bash
脚本中检测到它并tput rmcup
自动调用。
简而言之,我希望能够确定当前的屏幕状态是什么;即,它是“备用屏幕”还是“正常屏幕”?
shell - tput:当命令在 ssh 上运行时,“没有 $TERM 的值并且没有指定 -T”
我在所有其他节点上从集群中的主节点运行 shell 脚本,
script.sh 包含以下用于格式化的行,根据终端的大小添加水平线,
这给出了错误并且不打印水平线,
但是当我在每个节点上单独运行它时,它不会给出错误并打印水平线。
linux - barman + 用红色标记失败/启动的备份
使用以下 barman 命令我们可以看到备份状态,而 STARTED/FAILED 状态表示备份实例创建成功
输出:
是否有可能以某种方式在 barman 语法之后通过管道传输 tput 命令,以便用红色标记 FAILED/STARTED 行,以便用户可以将这些行识别为坏备份?
例子:
备注 - " tput setaf 1 " --> 会将字符涂成红色
ncurses - Buildroot:Ncurses 包括 tput?
我有一个启动 sh 脚本,它播放文本的“动画”,使用 tput 来操作/删除终端上的行。不幸的是,我的系统上似乎没有 tput,我已经包含了 ncurses 库,它显然也包含 tput。
我正在寻找获得 tput 的方法或替代方法。
谢谢
bash - 停止回显并使用 Bash 中的所有用户输入
目标
直到脚本中的某个子任务完成其工作:
- 停止回声;
- 禁用光标;
- 消耗所有用户输入;
- 不要阻塞中断(Ctrl+C 等)。
做了什么
现在,使用这个答案,我为此创建了几个函数,它们是:
以下是它们的使用方式:
问题
问题是:当前的“解决方案”不起作用。当我在长时间运行的作业中按下键时,它们会出现在屏幕上,并且按“Enter”会破坏所有输出并伴随光标移动。此外,在“start_interactive”函数调用之后,所有输入都出现在终端屏幕上。
这项任务的正确解决方案是什么?
解决方案
最终的工作解决方案是:
sh - 错误“tput No value for $TERM and no -T specified”
我在服务器 A 中有一个 shell 脚本,在服务器 B 中有一个 shell 脚本。我的逻辑写得就像 A 中的 shell 脚本被执行,它调用服务器 B 中的一个 shell 脚本并执行它。当 A 执行 B 时,我能够得到所需的结果,但结果也会出现错误。错误信息:
我正在使用以下几行来获得彩色输出;
这些行在 A 和 B 的 shell 脚本中都可用。当我通过登录到服务器 B 在 B 中执行 shell 脚本时,所需的输出与颜色一起出现。当我从 A 调用 shell 脚本并执行它时,我得到了想要的结果以及上面提到的错误消息。
你能在这方面提供帮助吗?
仅供参考,我检查"echo $TERM"
并输出'xterm'
在两个服务器中。
不知道我哪里出错了。
unix - What's the difference between cursor_up (cuu1) and key_up (kcuu1) in terminfo(5)?
In terminfo(5):
I tried with tput and they produce the same output:
gnu-make - 将 tput 与 make 一起使用
我希望使用tput对我的 makefile 的输出进行一些格式化。一个例子:如果你只是输入
作为 shell 中的命令,它将输出一条横跨终端窗口整个宽度的漂亮行。
我想知道是否有任何方法可以在生成文件中进行此操作?以下仅产生一个空行:
绝对是一个愚蠢的问题,但如果你碰巧知道,请插话。