AIX putty终端颜色使用tput

时间:2018-03-21 16:45:51

标签: unix terminal putty aix xterm

我正在尝试使用 tput setb或setab 功能设置颜色,但我无法获得颜色。在积极的一面tput粗体,下划线的功能正在起作用。我无法找到任何setb函数问题的原因。

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

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

你能帮我使用 tput set 功能来创建颜色吗?

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

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

function sameTypes(arr, type) {
    arr.forEach((item, index) => {
        if (typeof item == type) {
            console.log('TRUE');
        } else {
            console.log('FALSE');
        }
    });
}

print  ${__GREEN}$(tput bold)"Green color Bold" $(tput sgr0)

2 个答案:

答案 0 :(得分:0)

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

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

的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

答案 1 :(得分:0)

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

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

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

我正在使用AIX Lpar和putty