लिनक्स शेल प्रांप्ट बनाना अंतिम रिटर्न मान दिखाता है


12

मैं वर्तमान में एक लिनक्स मशीन पर हूं और शेल प्रॉम्प्ट मुझे अंतिम रिटर्न मान और निष्पादित कमांड की संख्या (चित्र शामिल है, बैंगनी में दिखाए गए इन नंबरों के साथ) दिखा रहा है।

मेरे अपने कंप्यूटर में यह नहीं है, मैं इसे कैसे कॉन्फ़िगर कर सकता हूं?
मैं Xubunto का उपयोग कर रहा हूं, यदि अधिक जानकारी की आवश्यकता है तो मुझे बताएं - मैं बहुत लिनक्स उपयोगकर्ता नहीं हूं (मुझे नहीं पता कि यहां क्या प्रासंगिक है)।

उदाहरण


यह जवाब देने के लिए बहुत अस्पष्ट है। ये आदेश क्या आप निष्पादित कर रहे हैं? आपका कंप्यूटर (OS) ऐसा क्या नहीं है?
क्रिस टिंग

मैंने कहा है कि मेरा OS Xubuntu है, और यह किसी विशिष्ट कमांड से संबंधित नहीं है, यह सिर्फ कुछ है जो हमेशा दिखाया जाता है।
एरन

जवाबों:


10

ऐसा लगता है bashकि Xubuntu का डिफ़ॉल्ट शेल है

संपादित करें .bashrcया .bash_profile(आपके सिस्टम कॉन्फ़िगरेशन पर निर्भर करता है) और शुरू होने वाली रेखा की तलाश करें PS1=। यह लाइन आपका संकेत देती है

अंतिम कमांड के रिटर्न वैल्यू को जोड़ने के लिए, उस लाइन में निम्नलिखित जोड़ें:

`echo -n $?`

इसलिए यह निम्न जैसा दिखता है (मेरा वर्तमान संकेत, सरलीकृत):

PS1='\u in \w (`echo -n $?`)\n -> \$ '

यह _कर्सर होने के साथ इस तरह दिखेगा :

danielbeck in ~ (0)
 -> $ _

वैकल्पिक रूप से, आप PROMPT_COMMANDअपने प्रॉम्प्ट पर वापसी कोड को प्रस्तुत करने के लिए पर्यावरण चर का उपयोग कर सकते हैं :

export PROMPT_COMMAND='RET=$?; echo -n "($RET) "'

यह (0)आपके अन्यथा संशोधित प्रॉम्प्ट से ठीक पहले उदा को जोड़ देगा ।


आपको \#अपने प्रॉम्प्ट में जोड़कर "काउंटर" मिलता है : यह कमांड नंबर है । अधिक उपयोगी इतिहास संख्या हो सकती है , जो 1 से शुरू नहीं होती है, लेकिन आपको विस्मयादिबोधक चिह्न दर्ज करके किसी भी कमांड को निष्पादित करने की अनुमति देती है, उसके बाद कमांड का इतिहास नंबर:

984 $ foo
-bash: foo: command not found
985 $ !984
foo
-bash: foo: command not found
986 $ _

कुछ अतिरिक्त खेलने के बाद:

PS1='`RET=$?; if [ $RET != 0 ] ; then echo "rc $?"; fi`\n\u in `pwd`\n#\# !\! \$ '

यह केवल गैर-शून्य होने पर रिटर्न वैल्यू दिखाएगा, यह अपनी लाइन पर है। कमांड संख्या और इतिहास संख्या उसी लाइन पर हैं जिस कमांड में आप दर्ज करने जा रहे हैं:

danielbeck in /Users/danielbeck/Downloads
#1 !984 $ foo
-bash: foo: command not found
rc 127
danielbeck in /Users/danielbeck
#2 !985 $ _

5

चर $?में अंतिम रन प्रोग्राम के लिए निकास कोड होता है।

ninth:~ sakkaku$ echo Hello World
Hello World
ninth:~ sakkaku$ echo $?
0
ninth:~ sakkaku$ cat asdasd
cat: asdasd: No such file or directory
ninth:~ sakkaku$ echo $?
1

मुझे लगता है कि आप एक वृद्धिशील का उपयोग करके "निष्पादित कमांड की संख्या" प्राप्त कर सकते हैं

ninth:~ sakkaku$ echo $[numcommands++]
0
ninth:~ sakkaku$ echo $[numcommands++]
1
ninth:~ sakkaku$ echo $[numcommands++]
2
ninth:~ sakkaku$ echo $[numcommands++]
3

फिर आपको शीघ्र बदलने के लिए अपने .bashrc में PS1 / PS2 चर को संशोधित करना होगा। यह एक सभ्य मार्गदर्शक की तरह लगता है (सिवाय इसके कि यह संशोधन / etc / bashrc की सिफारिश करे, मैं बस ~ / .bashrc) करूँगा।


1
धन्यवाद, मैं इसे बाद में कोशिश करूँगा जब मैं अपने कंप्यूटर पर हूँ और देखूँगा कि यह कैसे जाता है।
एरन

1

FYI करें, यदि आप zsh का उपयोग करते हैं तो यह और भी आसान है। इसका निर्माण: %(?..%F{red}%?%f)इसका मतलब है कि अंतिम कमांड त्रुटिपूर्ण को लाल रंग में दिखाएं यदि यह शून्य (सामान्य) नहीं है, लेकिन अगर यह सामान्य है तो कुछ नहीं दिखा। निर्माण का %(1j.[%j].)मतलब वर्ग कोष्ठक में पृष्ठभूमि नौकरियों की वर्तमान संख्या को दर्शाता है।

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