【问题标题】:tput: No value for $TERM and no -T specified in Sublime Text 3tput:在 Sublime Text 3 中没有指定 $TERM 和 -T 的值
【发布时间】:2014-08-26 21:24:45
【问题描述】:

当我在 Sublime Text 3 中构建任何内容时(无论使用何种语言),我都会在任何控制台输出的开头看到以下几行:

tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified

我不知道 ST3 正在使用什么 shell 设置或如何编辑它们。我该如何摆脱它?

编辑

这是我的~/.bash_profile 的内容,考虑到 cmets,可能需要一些编辑:

# Prompt
NRM=`tput sgr0`
BLD=`tput bold`
ITL=`tput sitm`
UL=`tput smul`
RED=`tput setaf 1`
GRN=`tput setaf 2`
BLU=`tput setaf 4`

PS1='\n\r${BLD}\u${NRM}|${UL}\h${NRM} [${BLD}${BLU}\W${NRM}] \w \n>> '

# For Homebrew
export PATH=/usr/local/bin:$PATH

【问题讨论】:

  • 这可能来自您的.bashrc。它需要检测它是否在交互式 shell 中使用,如果没有,则跳过 tput 之类的内容。
  • 请使用~/.bashrc 和/或~/.bash_profile 的内容编辑您的问题

标签: bash sublimetext3


【解决方案1】:

在处理任何tput 调用之前,必须更改.bash_profile 以检查交互式shell:

if [[ $- == *i* ]]
then
    # Prompt
    NRM=`tput sgr0`
    BLD=`tput bold`
    ITL=`tput sitm`
    UL=`tput smul`
    RED=`tput setaf 1`
    GRN=`tput setaf 2`
    BLU=`tput setaf 4`
    PS1='\n\r${BLD}\u${NRM}|${UL}\h${NRM} [${BLD}${BLU}\W${NRM}] \w \n>> '
fi

【讨论】:

  • 您能否进一步解释 [[ $- == *i* ]] 的工作原理以及为什么 sublime 文本会出现问题?还是谢谢你!
  • @A.Wenn 我不太精通bash,但它正在检查交互模式,Sublime 不使用该模式,因为它间接调用了 bash shell。这一点很重要,因为tput 调用只有在交互式终端上才有意义并且正常工作。
  • @A.Wenn $ 指的是当前的 SHELL 值/类型。因此,IF 语句询问“您当前的 shell 模式是否是交互式的(即您没有通过 ssh 或其他可能远程的方法执行一次性任务),然后才将终端设置为这样”,这就是无论是漂亮的颜色还是欢迎信息,您都可以设置自己的自定义设置。 echo $0 在大多数情况下会根据这篇文章为您提供当前的 SHELL:askubuntu.com/questions/590899/…
猜你喜欢
  • 1970-01-01
  • 2017-07-27
  • 2020-07-26
  • 1970-01-01
  • 2021-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-10
相关资源
最近更新 更多