मैं अपने संकेत को रीसेट करने से GNU स्क्रीन को कैसे रोकूं? [बन्द है]


13

जब मैं स्क्रीन चलाता हूं तो यह मेरा संकेत बदल देता है। मैं इस व्यवहार को कैसे रोकूं? उदाहरण के लिए:

$ echo $PS1
\[\e]0;\h:Prod\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$
$ screen
$ echo $PS1
[\u@\h \W]\$

दिलचस्प है, यह अन्य मशीनों पर ऐसा नहीं करता है। विचाराधीन मशीन Redhat 4 अपडेट 4 है, जिसका स्क्रीन संस्करण 4.00.02 (FAU) 5-Dec-03 है।

जवाबों:


16

अपनी .screenrc फ़ाइल में जोड़ने की कोशिश करें (यह पहले से ही वहां नहीं है):

खोल - $ शेल

जब आप स्क्रीन सेशन शुरू करते हैं या एक से एक और टर्मिनल बनाते हैं, तो यह आपको एक लॉगिन शेल देगा।


1
मेरे पास मेरी .rcrc में 'shell / bin / bash' था, जाहिर है कि यह 'shell - / bin / bash' या आपके द्वारा प्रदान किया गया होना चाहिए।
स्वूगन जूल

2

कई वितरण शीघ्र निर्धारित करने से पहले टर्मिनल के प्रकार की जांच करते हैं। उदाहरण के लिए, Ubuntu में डिफ़ॉल्ट रूप में यह छोटा रत्न होता है।

# एक फैंसी प्रॉम्प्ट सेट करें (गैर-रंग, जब तक हम नहीं जानते कि हम "रंग" चाहते हैं)
केस "$ TERM" में
    xterm- रंग) color_prompt = हाँ ;;
esac

चूंकि स्क्रीन अपने स्वयं के TERM वैरिएबल ("स्क्रीन") का उपयोग करता है, इसलिए bash को लगता है कि यह फैंसी कलर प्रॉम्प्ट प्रदर्शित करने में सक्षम नहीं है, इसलिए यह सरलता से चूकता है। बेशक, एक सामान्य टर्मिनल के रूप में एक ही जटिल संकेतों के लिए पूरी तरह सक्षम है।

इसलिए, इस व्यवहार को ओवरराइड करने के लिए, बस अपनी पसंद के PS1 विकल्पों को अपनी ~/.bashrcफ़ाइल के अंत में हार्ड-सेट करें । या, यदि आप रोमांच महसूस कर रहे हैं, तो उस परीक्षण को ढूंढें जो TERM वेरिएबल के मान की जाँच करता है और इसे "xterm-color" के अलावा "स्क्रीन" को स्वीकार करने के लिए संशोधित करता है।


1

शायद यह एक कस्टमाइज्ड वैरिएबल है जो ~ / .screenrc फाइल में सेट है?


1
हां, ग्लोबल या पर्सनल स्क्रीन आर्क में setenv PS1 की जांच करें
त्रिज्या

4
और क्या अनुकूलित चर होगा? यदि आपको उत्तर नहीं पता है, तो उत्तर न दें।
सवोगन

0

एक ही मुद्दे (स्क्रीन में और अधिक कस्टम प्रॉम्प्ट नहीं) के साथ एक मशीन पर और स्क्रीन आर्क में SHELL -$SHELLनहीं setenv PS1, और बैशकेक में (डंब) टर्मिनल के लिए कोई विशेष परीक्षण नहीं है।

प्रयुक्त $ TERM की स्थापना:

$ echo $TERM
urxvt-unicode-256color

स्क्रीन में स्क्रीन के नीचे रहते हुए मेरा कस्टम प्रॉम्प्ट वापस मिल गया:

- #term xterm-256color
+ term urxvt-unicode-256color

पुनश्च: किसी अन्य खाते को इसके लिए कोई ज़रूरत नहीं थी, लेकिन dircolors और एक आधुनिक टर्मिनल के लिए bashrc परीक्षण इस तरह से 1 :

if [[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] ; then
PS1=<my fancy prompt>

मेरा मानना ​​है कि यह काम करता है:

if [ "$TERM" != "dumb" ]; then
PS1=<my fancy prompt>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.