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同じ質問を検索するとき

おすすめ記事