명령 터미널을 열거나 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같은 질문을 검색할 때