【问题标题】:AIX putty terminal color using tput使用 tput 的 AIX putty 终端颜色
【发布时间】:2018-08-30 21:55:48
【问题描述】:

我正在尝试使用 tput setb 或 setab 函数设置颜色,但我无法获取颜色。在积极的一面 tput bold ,下划线之类的功能正在发挥作用。我找不到任何 setb 功能问题的原因。

print $(tput bold)"Text is bold"$(tput sgr0)

你能帮我用tput set函数来创建颜色吗?

我正在使用 putty 0.65 版本,TERM=xterm-256color 和 AIX 版本 = 7.1

我尝试使用与谷歌不同的方法,如下所示。 但我想将 tput set 用于简单的目的,而不是硬编码颜色值。请帮助我理解。

__GREEN='\033[0;32m'
print  ${__GREEN}$(tput bold)"Green color Bold" $(tput sgr0)

【问题讨论】:

  • 您只是在尝试,还是真的想改变颜色?如果是后者,请使用转义序列 ESC [ 30+fgcolorno m 和 ESC [ 40+bgcolorno m` 更多信息:en.wikipedia.org/wiki/…

标签: unix terminal putty aix xterm


【解决方案1】:

终端描述中未提供 setb(和 setf)功能,因为它们用于非 ANSI 颜色。使用 setab(和 setaf)。

  • 要更改泰克型终端上的当前前景或背景颜色,请使用 setaf(设置 ANSI 前景)和 setab (设置 ANSI 背景)或 setf(设置前景)和 setb(设置背景)。它们采用一个参数,即颜色编号。 SVr4 文档仅描述了 setaf/setab; XPG4 草案说 "如果终端支持 ANSI 转义序列来设置背景 和前景,它们应分别编码为 setafsetab

ncurses'terminfo manpage 这么说:

  • 如果终端支持其他转义序列设置背景 和前景,它们应分别编码为 setf 和 setb。 vidputs 和 refresh(3x) 函数使用 setaf 和 setab 功能(如果已定义)。

颜色有编号,无论哪种方式:

for n in 0 1 2 3 4 5 6 7;do tput setab $n;echo background $n;done; tput sgr0

【讨论】:

  • 谢谢,我试过 setaf 和 setab,但还是不行。我正在使用腻子。它会在那里工作吗?
【解决方案2】:

我在下面定义并且它有效。谢谢!

 __GREEN='\033[0;32m'
 __NC='\033[0m' # No Color

 print -n ${__GREEN}$(tput bold)
 banner  DEVELOPER
 print -n $(tput sgr0)${__NC}

我正在使用 AIX Lpar 和 putty

【讨论】:

    猜你喜欢
    • 2010-10-22
    • 1970-01-01
    • 1970-01-01
    • 2014-08-28
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    • 2014-07-04
    • 2014-10-27
    相关资源
    最近更新 更多