bash: __vte_prompt_command: 명령을 찾을 수 없습니다

bash: __vte_prompt_command: 명령을 찾을 수 없습니다

명령 터미널을 열거나 Enter 키를 누를 때마다 위의 오류 메시지가 나타납니다. 나쁘지는 않지만 매우 짜증납니다.

~/.bash_profile은 여기에 있습니다.

# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs

/etc/bashrc에서 오류가 발생하는 영역입니다.

  if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
      PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
  elif [ "${VTE_VERSION:-0}" -ge 3405 ]; then
      PROMPT_COMMAND="__vte_prompt_command"
  else
      PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
  fi

이 줄을 ~/.bashrc에 추가하면 문제가 해결됩니다.

source /etc/profile.d/vte.sh

분명히 _vte_prompt_comand는 vte.sh에만 정의되어 있습니다.

__vte_prompt_command() {
  local command=$(HISTTIMEFORMAT= history 1 | sed 's/^ *[0-9]\+ *//')
  command="${command//;/ }"
  local pwd='~'
  [ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/}
  printf "\033]777;notify;Command completed;%s\007\033]0;%s@%s:%s\007%s" "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)"
}

이 명령은 실제로 무엇을 수행합니까? 시작 시 /etc/profile.d/*.sh가 로드되지 않습니까? 누군가 왜 이렇게 동작하는지 설명할 수 있나요?

답변1

gnome-terminal 3.7.0 변경 로그에서:

터미널에 열린 새 탭이 현재 탭과 동일한 작업 디렉터리를 가지기 위해서는 터미널에서 실행 중인 쉘의 협력이 필요합니다. 이를 위해 vte는 bash PS1 프롬프트에서 사용해야 하는 bash 쉘 스크립트를 설치합니다. (...)

나는 출신https://bugzilla.redhat.com/show_bug.cgi?id=924275같은 질문을 검색할 때

관련 정보