निर्भर करता है कि चीजें कैसे सेट की जाती हैं, लेकिन डिफ़ॉल्ट रूप से, इस तरह से कुछ काम करना चाहिए।
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करना है जब भी मैं चाहता हूं कि शीर्षक नहीं बदलना चाहिए?