bash: __vte_prompt_command: command not found
每当我打开一个终端,我都会看到这行代码。此外,每次我在终端中输入命令时,都会打印出此信息。我是一个linux-noob,如果有人能给我一些资源,或者暗示一个可能的解决方案,我很乐意阅读。我试着用谷歌搜索,但无法找到任何有用的结果。我没有做任何具体的事情,只是在这个开始弹出。提前感谢:)
附加信息:
lawou6xi1#
这听起来像是一个名为VTE的程序设置了bash环境变量PROMPT_COMMAND来调用一个名为__vte_prompt_command的函数。PROMPT_COMMAND环境变量定义了一个命令,该命令在屏幕上显示每个新提示符之前执行。当这个命令产生意外的输出时,可能会非常令人讨厌。您可以通过在终端中输入以下命令暂时摆脱烦人的消息:
PROMPT_COMMAND
__vte_prompt_command
__vte_prompt_command() { true; }
这将创建一个什么都不做的伪函数-您可以通过查看此命令的输出来确认:
type __vte_prompt_command
在我的系统中应用hack后,我看到了这个:
__vte_prompt_command is a function __vte_prompt_command () { true }
但是,这表明VTE可能未正确安装和/或可能损坏。如果可能,您可能要尝试重新安装VTE。我不建议将此永久放入您的~/.bashrc文件中。
~/.bashrc
yc0p9oo02#
我用默认的gnome-terminal运行Ubuntu 18.04,遇到了同样的问题,但想要一个明确的解决方案。在尝试了之前建议的解决方案后,我仍然得到了这样的消息:__vte_prompt_command: command not found在启动新终端和每个命令终止后启动。我在例如.bashrc,.profile中搜索了一个文件,它将执行source /etc/profile.d/vte-2.91.sh,但没有运气。我记得很久以前我在~/.bashrc中添加了以下行:
__vte_prompt_command: command not found
.bashrc
.profile
source /etc/profile.d/vte-2.91.sh
export PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'\n'}history -a; history -c; history -r"
以便将命令行历史附加到所有打开的终端。我发现评论它解决了问题。
#export PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'\n'}history -a; history -c; history -r"
比$ source ~/.bashrc我想我会把这个分享给任何有同样问题的人。
$ source ~/.bashrc
zdwk9cvp3#
您可以通过使用sudo gedit ~/.bashrc编辑~/.bashrc,使用STRG+F搜索字符串**“vte”**,并使用#注解该行来禁用相应的代码。在我的系统上,这行看起来像这样,我猜是Ubuntu Budgie的旧安装放在那里的:
sudo gedit ~/.bashrc
#
if [ $TILIX_ID ] || [ $VTE_VERSION ] ; then source /etc/profile.d/vte.sh; fi # Ubuntu Budgie END
如果它看起来像这样,终端中的行将不再出现:
#if [ $TILIX_ID ] || [ $VTE_VERSION ] ; then source /etc/profile.d/vte.sh; fi # Ubuntu Budgie END
3zwtqj6y4#
我也在讨论这个问题。为了诊断它,我使用ag查找系统中包含__vte_prompt_command的文件:
ag
> sudo ag -l __vte_prompt_command 2>/dev/null /
出现的第一个结果是/etc/profile.d/vte-2.91.sh。查看该文件,我看到如果终端没有按照预期命名,则会提前退出:
/etc/profile.d/vte-2.91.sh
# TERM not supported? case "$TERM" in xterm*|vte*|gnome*) :;; *) return 0 ;; esac
在我的例子中,我认为这是解释:1.当我打开终端时,TERM被设置为xterm-256color。vte-2.91.sh将执行,__vte_prompt_command将被定义,PROMPT_COMMAND将被设置。1.我会启动一个tmux会话。Tmux会将TERM设置为'screen'。vte-2.91.sh将执行,但由于$TERM已更改,脚本将提前退出。__vte_prompt_command不会被定义。1.我的shell配置将执行PROMPT_COMMAND,调用__vte_prompt_command,这是没有设置的,因此出现了错误消息。显然vte-2.91.sh有某种问题。但是我通过配置tmux来解决这个问题,将TERM设置为vte所期望的内容:
TERM
xterm-256color
vte-2.91.sh
'screen'
set -g default-terminal "xterm-256color"
这一切都有点复杂,但我怀疑你的情况有类似的解释。
cwtwac6a5#
对于CentOS7(64位):尝试使用yum命令安装。
yum
sudo yum update -y sudo yum install -y terminator sudo yum install -y epel-release sudo yum install -y terminator #again
重新绘制命令提示符终端,这对我有效(:参考:http://bytefreaks.net/gnulinux/install-terminator-in-centos-7-64bit
wwtsj6pe6#
set +v
我想你可能会以某种方式:set -v(读取时打印shell输入行。)
set -v
so set i
6条答案
按热度按时间lawou6xi1#
这听起来像是一个名为VTE的程序设置了bash环境变量
PROMPT_COMMAND
来调用一个名为__vte_prompt_command
的函数。PROMPT_COMMAND
环境变量定义了一个命令,该命令在屏幕上显示每个新提示符之前执行。当这个命令产生意外的输出时,可能会非常令人讨厌。您可以通过在终端中输入以下命令暂时摆脱烦人的消息:
这将创建一个什么都不做的伪函数-您可以通过查看此命令的输出来确认:
在我的系统中应用hack后,我看到了这个:
但是,这表明VTE可能未正确安装和/或可能损坏。如果可能,您可能要尝试重新安装VTE。我不建议将此永久放入您的
~/.bashrc
文件中。yc0p9oo02#
我用默认的gnome-terminal运行Ubuntu 18.04,遇到了同样的问题,但想要一个明确的解决方案。
在尝试了之前建议的解决方案后,我仍然得到了这样的消息:
__vte_prompt_command: command not found
在启动新终端和每个命令终止后启动。
我在例如
.bashrc
,.profile
中搜索了一个文件,它将执行source /etc/profile.d/vte-2.91.sh
,但没有运气。我记得很久以前我在
~/.bashrc
中添加了以下行:以便将命令行历史附加到所有打开的终端。我发现评论它解决了问题。
比
$ source ~/.bashrc
我想我会把这个分享给任何有同样问题的人。
zdwk9cvp3#
您可以通过使用
sudo gedit ~/.bashrc
编辑~/.bashrc
,使用STRG+F搜索字符串**“vte”**,并使用#
注解该行来禁用相应的代码。在我的系统上,这行看起来像这样,我猜是Ubuntu Budgie的旧安装放在那里的:如果它看起来像这样,终端中的行将不再出现:
3zwtqj6y4#
我也在讨论这个问题。为了诊断它,我使用
ag
查找系统中包含__vte_prompt_command
的文件:出现的第一个结果是
/etc/profile.d/vte-2.91.sh
。查看该文件,我看到如果终端没有按照预期命名,则会提前退出:在我的例子中,我认为这是解释:
1.当我打开终端时,
TERM
被设置为xterm-256color
。vte-2.91.sh
将执行,__vte_prompt_command
将被定义,PROMPT_COMMAND
将被设置。1.我会启动一个tmux会话。Tmux会将
TERM
设置为'screen'
。vte-2.91.sh
将执行,但由于$TERM已更改,脚本将提前退出。__vte_prompt_command
不会被定义。1.我的shell配置将执行
PROMPT_COMMAND
,调用__vte_prompt_command
,这是没有设置的,因此出现了错误消息。显然
vte-2.91.sh
有某种问题。但是我通过配置tmux来解决这个问题,将TERM
设置为vte所期望的内容:这一切都有点复杂,但我怀疑你的情况有类似的解释。
cwtwac6a5#
对于CentOS7(64位):
尝试使用
yum
命令安装。重新绘制命令提示符终端,这对我有效(:
参考:http://bytefreaks.net/gnulinux/install-terminator-in-centos-7-64bit
wwtsj6pe6#
我想你可能会以某种方式:
set -v
(读取时打印shell输入行。)