İşlerin nasıl ayarlandığına bağlıdır, ancak varsayılan olarak böyle bir şeyin çalışması gerekir.
settitle() {
printf "\033k$1\033\\"
}
O zaman koş:
settitle NEWTITLE
.
Daha fazla ayrıntı için ekran başlığı belgelerine ve GNU ekran sss bölümüne bakın .
Verilen Ctrl+ A Asadece bir sonraki komuta kadar değiştirir, muhtemelen $PS1
(tüm kabuklar) veya $PROMPT_COMMAND
/ DEBUG trap
(sadece bash) veya precmd
/ preexec
(yalnızca zsh ) tarafından ayarlanır .
Herhangi bir yerde bunun için bakmak gerekir \e
ya \033
sahip göründüğünü k
veya \\
temelde benim gibi ondan sonra settitle
yukarıdaki örnekte.
GÜNCELLEME
Bir geleneğiniz olduğunu söylediniz preexec
.
Neden bunu değiştirmiyoruz:
if [[ "$TERM" == "screen" ]]; then
local CMD=${1[(wr)^(*=*|sudo|-*)]}
echo -n "\ek${TITLE:-$CMD}\e\\"
fi
Ardından, aşağıdakileri çalıştırarak özel bir başlık ayarlayabilirsiniz:
TITLE="my title"
ve çalıştırarak başlığı kaldır
TITLE=
Değiştirmek unutmayın precmd
ve $PS1
gerekirse de.
KENARA
Hatta bütün terminallere (örneğin bu genişletmek olabilir xterm
, gnome-terminal
sert kodlama etmeyerek, vs.) \ek
ve \e\\
.
Bunu nasıl yaparım:
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}"
}
Ardından, aşağıdakileri değiştirebilirsiniz preexec
:
if [[ "$TERM" == "screen" ]]; then
local CMD=${1[(wr)^(*=*|sudo|-*)]}
settitle "${TITLE:-$CMD}"
fi
Ctrl-A A
. Ve komut istemi hakkında,$PS1
başlığın değişmesini istemediğimde değiştirmem gerektiğini mi söylüyorsunuz?