问题标签 [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.

0 投票
1 回答
107 浏览

curses - tput 序列不会导致明显变化?

我经常不得不通过 ssh 连接到一个远程系统,如果遇到 N 分钟的不活动(其中 N 相当小),它将终止我的连接。我已经厌倦了被开除并失去我的工作/背景,例如,我去网上查找了一些东西并且花了一点时间。

我一直在尝试想出一个可以在后台运行的简单脚本,它只是不时向终端发送少量输出,所以我不会被注销。

当然,理想情况下,我希望输出不会干扰我正在做的任何事情,无论我在做什么——纯文本、诅咒等等。

所以我正在寻找一些可以重置 I/O 计时器的 tput 功能,但会导致屏幕外观出现问题。我发现了很多接近的东西,但到目前为止,如果时机错误,所有这些都可能导致故障。

我目前正在做的是

(保存光标,恢复光标)。到目前为止,这对我很有帮助,但我敢肯定,在某些执行自己的保存/恢复和搞砸的诅咒程序之间发生这种情况只是时间问题。

cub 和/或 cuf(光标向后,光标向前)看起来几乎可以工作。如果他们中的任何一个在给定 0 参数时根本没有移动光标,那正是我正在寻找的。但是,对我来说不幸的是,0 的行为与 1 完全相同(光标向任何方向移动一个位置)。至少,对于我正在使用的终端,它确实如此。

效果很好,除非它发生在光标位于屏幕左边缘时。在这种情况下,cub1 什么都不做,但是 cuf1 会移动光标。

如果我把它们颠倒过来:

那么只有当光标位于屏幕的右边缘时发生这种情况,我才会遇到麻烦,而且我想这种情况可能发生的频率较低。仍然...

如果我能弄清楚如何获取光标的当前位置,我会得到它,然后用它来杯子到它已经在的位置。但似乎没有办法获取光标的当前位置。(或者我只是错过了它?)

如果我的终端支持 mrcup,参数为 0 的 mrcup可能有效,但它不支持。

什么都不会进入终端,所以不要重置不活动计时器。

似乎应该有一些简单的方法。

有任何想法吗?

0 投票
0 回答
1182 浏览

tput - tput:终端属性:没有这样的设备或地址

tput:终端属性:Enthought Canopy 中没有这样的设备或地址。我在尝试

所以得到错误:

我该如何纠正这个 tput 问题?

0 投票
1 回答
2230 浏览

bash - 如何获取 tput smcup/rmcup 设置的屏幕状态?

虽然我知道tput rmcup从“备用屏幕”(在 中称为“杯子模式” man 5 terminfo)返回并恢复保存的屏幕,但它确实具有重新定位光标的副作用。

因此,如果tput smcup被调用,则tput rmcup恢复屏幕并重新定位光标,但如果您随后键入更多命令或按回车键几次然后tput rmcup再次使用,则光标将返回到原始保存的位置。

一个用例是在bash[使用scriptreplay] 回放终端记录的脚本中:如果脚本在没有 [相当于] 调用的情况下提前结束,tput rmcup那么我希望能够在我的bash脚本中检测到它并tput rmcup自动调用。

简而言之,我希望能够确定当前的屏幕状态是什么;即,它是“备用屏幕”还是“正常屏幕”?

0 投票
1 回答
2004 浏览

shell - tput:当命令在 ssh 上运行时,“没有 $TERM 的值并且没有指定 -T”

我在所有其他节点上从集群中的主节点运行 shell 脚本,

script.sh 包含以下用于格式化的行,根据终端的大小添加水平线,

这给出了错误并且不打印水平线,

但是当我在每个节点上单独运行它时,它不会给出错误并打印水平线。

0 投票
1 回答
54 浏览

linux - barman + 用红色标记失败/启动的备份

使用以下 barman 命令我们可以看到备份状态,而 STARTED/FAILED 状态表示备份实例创建成功

输出:

是否有可能以某种方式在 barman 语法之后通过管道传输 tput 命令,以便用红色标记 FAILED/STARTED 行,以便用户可以将这些行识别为坏备份?

例子:

备注 - " tput setaf 1 " --> 会将字符涂成红色

0 投票
2 回答
243 浏览

ncurses - Buildroot:Ncurses 包括 tput?

我有一个启动 sh 脚本,它播放文本的“动画”,使用 tput 来操作/删除终端上的行。不幸的是,我的系统上似乎没有 tput,我已经包含了 ncurses 库,它显然也包含 tput。

我正在寻找获得 tput 的方法或替代方法。

谢谢

0 投票
1 回答
671 浏览

bash - 停止回显并使用 Bash 中的所有用户输入

目标

直到脚本中的某个子任务完成其工作:

  • 停止回声;
  • 禁用光标;
  • 消耗所有用户输入;
  • 不要阻塞中断(Ctrl+C 等)。

做了什么

现在,使用这个答案,我为此创建了几个函数,它们是:

以下是它们的使用方式:

问题

问题是:当前的“解决方案”不起作用。当我在长时间运行的作业中按下键时,它们会出现在屏幕上,并且按“Enter”会破坏所有输出并伴随光标移动。此外,在“start_interactive”函数调用之后,所有输入都出现在终端屏幕上。

这项任务的正确解决方案是什么?

解决方案

最终的工作解决方案是:

0 投票
4 回答
2736 浏览

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'在两个服务器中。

不知道我哪里出错了。

0 投票
2 回答
430 浏览

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:

0 投票
1 回答
446 浏览

gnu-make - 将 tput 与 make 一起使用

我希望使用tput对我的 makefile 的输出进行一些格式化。一个例子:如果你只是输入

作为 shell 中的命令,它将输出一条横跨终端窗口整个宽度的漂亮行。

我想知道是否有任何方法可以在生成文件中进行此操作?以下仅产生一个空行:

绝对是一个愚蠢的问题,但如果你碰巧知道,请插话。