tput:未知终端

问题描述 投票:0回答:2

我使用的是 AIX-6.1,我正在尝试在我的 $PS1 中使用 tput。 我已经确认我什至无法从命令行运行 tput 。以下是我的会议:

# tput
unknown terminal "xterm"
# echo $TERM
xterm
# tput -T ansi
unknown terminal "ansi"

事实上,...

# ls /usr/lib/terminfo/x
x1700  xl83        xterm+pcc3  xterm+pcfkeys   xterm-88color  xterm-hp     xterm-old  xterm-vi
x1720  xtalk       xterm+pcf0  xterm+pcfn      xterm-8bit     xterm-ic     xterm-r5   xterm-vt220
x1750  xterm       xterm+pcf1  xterm-16color   xterm-basic    xterm-mono   xterm-r6   xterm-vt52
x820   xterm+pcc0  xterm+pcf2  xterm-24        xterm-bold     xterm-new    xterm-rep  xterm-xfree86
xdku   xterm+pcc1  xterm+pcf3  xterm-256color  xterm-boldso   xterm-noapp  xterm-sco  xterm-xmc
xitex  xterm+pcc2  xterm+pcfN  xterm-65        xterm-color    xterm-nrc    xterm-sun  xterms
# ls /usr/lib/terminfo/x | wc -l
       48
# for term in $(ls /usr/lib/terminfo/x) ; do tput -T $term ; done 2>&1 | grep 'unknown terminal' | wc -l
      48
# for term in $(ls /usr/lib/terminfo/x) ; do TERM=$term tput ; done 2>&1 | grep 'unknown terminal' | wc -l
  48

有什么想法吗?预先感谢。

aix terminfo tput
2个回答
14
投票

你的

TERMINFO
变量设置了吗?没有它,我相信系统将找不到您的 terminfo 文件。或者可能设置不正确?

如果您正在运行 sh、ksh、bash 或类似命令,请尝试:

export TERMINFO=/usr/lib/terminfo

如果您不确定自己使用的是什么 shell(我很确定您这样做,但其他人也可能会读到此内容),请输入:

echo $SHELL

如果您使用 csh、tcsh 或类似工具,那么您应该输入:

setenv TERMINFO /usr/lib/terminfo

之后,尝试再次运行 tput。


2
投票

我在 Mac OS Catalina 中修复了这个问题,

export TERMINFO=/usr/share/terminfo
© www.soinside.com 2019 - 2024. All rights reserved.