답변:
설정 방법에 따라 다르지만 기본적으로 이와 같은 기능이 작동합니다.
settitle() {
printf "\033k$1\033\\"
}
그런 다음 다음을 실행하십시오.
settitle NEWTITLE
.
자세한 내용은 화면 제목 문서 및 GNU 화면 FAQ 를 참조하십시오.
주어 Ctrl+ 것은 A A오직 다음 명령 때까지 변화하고, 아마에 의해 설정되는 것 $PS1
(모든 쉘) 또는 $PROMPT_COMMAND
/ DEBUG trap
(bash는 전용) 또는 precmd
/ preexec
(만 zsh을).
당신은 어떤 곳이 보일 것 \e
또는 \033
함께 나타납니다 k
또는 \\
기본적으로 내처럼, 그 후 settitle
위의 예.
최신 정보
당신은 당신이 관습이 있다고 말했다 preexec
.
이것을 다음과 같이 바꾸지 마십시오.
if [[ "$TERM" == "screen" ]]; then
local CMD=${1[(wr)^(*=*|sudo|-*)]}
echo -n "\ek${TITLE:-$CMD}\e\\"
fi
그런 다음 다음을 실행하여 사용자 정의 제목을 설정할 수 있습니다.
TITLE="my title"
실행하여 제목을 설정 해제
TITLE=
변경하는 것을 잊지 마세요 precmd
및 $PS1
필요한 경우뿐만 아니라.
곁에
당신은 모든 터미널 (예를 들어,이를 확장 할 수 xterm
, gnome-terminal
하드 코딩하지 않음으로써, 등) \ek
및 \e\\
.
이것이 내가하는 방법입니다.
terminit()
{
# determine the window title escape sequences
case "$TERM" in
aixterm|dtterm|putty|rxvt|xterm*)
titlestart='\033]0;'
titlefinish='\007'
;;
cygwin)
titlestart='\033];'
titlefinish='\007'
;;
konsole)
titlestart='\033]30;'
titlefinish='\007'
;;
screen*)
# status line
#titlestart='\033_'
#titlefinish='\033\'
# window title
titlestart='\033k'
titlefinish='\033\'
;;
*)
if type tput >/dev/null 2>&1
then
if tput longname >/dev/null 2>&1
then
titlestart="$(tput tsl)"
titlefinish="$(tput fsl)"
fi
else
titlestart=''
titlefinish=''
fi
;;
esac
}
# or put it inside a case $- in *i* guard
if test -t 0; then
terminit
fi
# set the xterm/screen/etc. title
settitle()
{
test -z "${titlestart}" && return 0
printf "${titlestart}$*${titlefinish}"
}
그러면 다음으로 변경할 수 있습니다 preexec
.
if [[ "$TERM" == "screen" ]]; then
local CMD=${1[(wr)^(*=*|sudo|-*)]}
settitle "${TITLE:-$CMD}"
fi
\e
또는 \033
.
창 제목에 현재 창에서 실행중인 응용 프로그램이 반영되어 있다면 쉘이 그렇게하기 때문입니다. 그렇게하는 경우 배포, 시스템 관리자 또는 구성했기 때문입니다.
명령이 실행되는 동안 명령이 창 제목으로 표시되면 이는 bashpreexec
에서 함수 (zsh) 또는 에뮬레이션 에 의해 수행됩니다 .
각 명령이 완료 될 때 제목이 변경되면 precmd
zsh 의 함수, PROMPT_COMMAND
bash 의 매개 변수 또는 PS1
쉘 의 프롬프트 ( 매개 변수) 의 일부로 수행됩니다 . 제목을 변경하는 명령은 터미널의 출력 스트림의 일부로 응용 프로그램에서 생성 된 이스케이프 시퀀스이므로 프롬프트에 포함 할 수 있습니다.
같은 이스케이프 시퀀스를 찾아 \e]0;new title\a
, \e]2;new title\a
또는 \eknew title\e\\
쉘 초기화 파일 ( ~/.bashrc
, ~/.zshrc
, ...). 아무 관련이 있다면, 설정이 시스템 파일에있을 수 있습니다 (예를 들어 /etc/bash.bashrc
, /etc/zsh/zshrc
); 그런 다음 자신의 초기화 파일에서 해당 매개 변수 또는 함수를 덮어 씁니다.
의 재정의 가능한 타이틀 설정에 대해서는 Mikel의 답변 을 참조하십시오 preexec
.
preexec
내 .zshrc에 정의 된 함수를 찾았습니다 . 문제는 내가 원하는 행동입니다. 대부분의 경우입니다. 하나의 특정 화면에서 즉시 비활성화 할 수 있기를 원합니다. preexec
제목을 수동으로 설정할 때 함수에 넣을 수있는 변수 가 있습니까?
preexec
함수 를 게시 하면 나 또는 다른 사람이 간단한 변경을 제안 할 수 있습니다.
preexec
했지만, Greg는 그가 사용하고 있다고 말하지 않았다 zsh
. 저에게 가르쳐 줄 것입니다. ;-)
preexec
디자인은 제 것보다 낫습니다.
Ctrl-A A
합니다. 그리고 프롬프트에 대해$PS1
제목을 변경하지 않으려면 언제든지 수정해야 합니까?