निर्भर करता है कि चीजें कैसे सेट की जाती हैं, लेकिन डिफ़ॉल्ट रूप से, इस तरह से कुछ काम करना चाहिए।
settitle() {
printf "\033k$1\033\\"
}
फिर भागो:
settitle NEWTITLE
।
देखें स्क्रीन शीर्षक डॉक्स और जीएनयू स्क्रीन पूछे जाने वाले प्रश्न अधिक जानकारी के लिए।
दिया Ctrl+ A Aकेवल अगले आदेश तक इसे बदल रहा है, यह संभवतः $PS1
(सभी गोले), या $PROMPT_COMMAND
/ DEBUG trap
(केवल बैश) या 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
Ctrl-A A
। और प्रॉम्प्ट के बारे में, आपका मतलब है कि मुझे संशोधित$PS1
करना है जब भी मैं चाहता हूं कि शीर्षक नहीं बदलना चाहिए?