विंडो बैश में शीर्षक


8

मैं बैश में विंडो शीर्षक कैसे सेट कर सकता हूं? मुझे पता है कि विंडोज बैच में यह TITLE है।


=> superuser.com

यह प्रोग्रामिंग से संबंधित है,
सॉर्ट

इस सवाल के साथ परिचित? superuser.com/questions/79972/…
डैरेन हॉल

जवाबों:


8

यहाँ यह करने के लिए एक अच्छा कार्य है:

# Allow the user to set the title.
function title {
   PROMPT_COMMAND="echo -ne \"\033]0;$1 (on $HOSTNAME)\007\""
}

अपने ~ / .bashrc में रखें, फिर शीर्षक सेट करने के लिए "जो भी हो" टाइप करें। यदि आप होस्टनाम से छुटकारा चाहते हैं, तो "($ HOSTNAME पर)" हटा दें।

संपादित करें: कोशिश करने से पहले . ~/.bashrc(उर्फ source ~/.bashrc) को निश्चित रूप से सुनिश्चित करें ।

स्रोत लिंक


मैं कोड में सब कुछ कैसे कर सकता हूं? मैं नहीं चाहता कि उपयोगकर्ता इसे टाइप करे।

आप अपने बैश कोड को शीर्षक फ़ंक्शन कह सकते हैं।

यह काम नहीं करता है, जब मैं फ़ंक्शन सामान दर्ज करता हूं, और फिर यह दर्ज title Hey!करता हूं, तो यह काम नहीं करता है। क्या करें?

1
अपने आप को दोहराने के जोखिम पर, क्या आपको अपने bashrc स्क्रिप्ट को संपादित करने के बाद निष्पादित करना याद है? यह मेरे लिए ठीक काम करता है।

@YourComputerHelpZ: आप एक xterm का उपयोग कर रहे हैं, या दूसरे प्रकार के कंसोल जैसे कोनोला या युकुके?
17फिंक

2

यदि आप "मिनिटेट" (2011 के अंत से साइगविन का डिफ़ॉल्ट टर्मिनल) का उपयोग कर रहे हैं, तो निम्न जोड़ें .bashrc:

function title {
   export WINDOWTITLE=$1
}    
export PS1='\[\e]0;$WINDOWTITLE:\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]~\w\[\e[0m\]\n\$'

और अपने टर्मिनल को फिर से खोलें और "शीर्षक ThisIsMyTitle" टाइप करें


इसका एक उन्नत संस्करण है, जो सुपरयूज़र . com /a/ 1366261 / 736409 पर (पिछले) प्रॉम्प्ट स्ट्रिंग को नहीं हटाता है ।
एडवर्ड

0

हमें अधिक जानकारी की आवश्यकता है: उत्तर इस बात पर निर्भर करेगा कि आप किस टर्मिनल का उपयोग कर रहे हैं, किस शेल का नहीं। क्या यह एक एक्सटर्म में है? एक rxvt? खिड़कियों पर एक साइबर खिड़की? आदि।

(डैनबेन का जवाब xterms के लिए काम करता है, और शायद rxvt टर्मिनलों के लिए)


मैं लिनक्स टकसाल पर टर्मिनल का उपयोग करता हूं

0

मैं इस VT100 भागने अनुक्रम में परिभाषित किया गया है .bashrc

PS1_SET_TITLE='\[\e]0;\u@\h:\w\a\]'

PS1="${PS1_SET_TITLE}" my other prompt components

export PS1

मेरे होम डायरेक्टरी के लिए यह प्रदर्शित करता है alex@host:~, जब मैं डायरेक्टरी बदलता हूं, तो वे विंडो टाइटल में अपडेट किए जाते हैं।

CYGWIN और PuTTY टर्मिनल सत्र के साथ काम करता है। मैं आमतौर पर एक्स नहीं चलाता हूं, लेकिन जब मैंने एक्सटर्म के साथ ठीक काम किया।

PROMPTINGपीएस आदेशों के लिए उपलब्ध स्विच पर बैश मैन पेज का अनुभाग पढ़ें , जैसे \u \h \w


0

यहाँ बैश में विंडो टाइटल सेट करने के लिए कुछ कोड दिए गए हैं - एक बेहतर संस्करण, जो
पिछले संकेत स्ट्रिंग को नहीं हटाता है (और इसमें परिवर्तन अस्थायी हैं), दूसरे उत्तर का (नीचे उद्धृत):

function title {
    export WTITLE=$1
}
PS1_old="$(echo $PS1 | sed -En 's/(.+)\\e](.+)/\1\\\\e]\2/g; s/(.+ )(.+)/\1\\n\2/p')";
_PS1='\[\e]0;$WTITLE: \w\a\]';_PS1+="$PS1_old ";export PS1=$_PS1;

# A command to use in bash (shell) scripts, replaces
# the above function that is for a "~/.bashrc" file:
export WTITLE="[for example \u@\h, insert title here]"

यदि आप "मिनिटेट" (2011 के अंत से साइगविन का डिफ़ॉल्ट टर्मिनल) का उपयोग कर रहे हैं,
तो निम्न जोड़ें .bashrc:

function title {
    export WINDOWTITLE=$1
}    
export PS1='\[\e]0;$WINDOWTITLE:\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]~\w\[\e[0m\]\n\$'

और अपने टर्मिनल को फिर से खोलें और "शीर्षक ThisIsMyTitle" टाइप करें

- इस जवाब से बोली ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.