पिछले कमांड निकास कोड प्रदर्शित करते समय zsh के संकेत को अनुकूलित करें




exit-code (2)

Zsh में %? का उपयोग करके प्रॉम्प्ट में पिछले कमांड के रिटर्न कोड / निकास कोड को प्रदर्शित करने की क्षमता शामिल है %? निकास का क्रम।

हालाँकि मैं निम्नलिखित संकेत देना चाहता हूँ:

[email protected] ~ [%?] %

जब निकास कोड 0 और: से भिन्न होता है

[email protected] ~ %

जब निकास कोड 0 है।

अगर मैं %? उपयोग करता हूँ %? अकेले यह हमेशा प्रदर्शित किया जाता है, भले ही %? is 0. इसके अलावा मुझे वर्गाकार कोष्ठक चाहिए लेकिन केवल तभी जब बाहर निकलने का कोड 0 न हो।

ऐसा करने का सबसे सरल तरीका क्या है?


वैकल्पिक रूप से, आप कर सकते हैं:

setopt PRINT_EXIT_VALUE

हमेशा पिछली रिटर्न वैल्यू दिखाने वाली एक नई लाइन प्रिंट करने के लिए।

मैं इसे सामान्य उपयोग के लिए पसंद नहीं करता, लेकिन यह अक्सर शेल स्क्रिप्टिंग डिबगिंग के लिए अच्छा है।


PS1 में उस स्थिति में जोड़ें जहां आप बाहर निकलने के कोड को दिखाना चाहते हैं:

%(?..[%?] )

यह एक सशर्त अभिव्यक्ति है। दो बिंदुओं के बीच का हिस्सा (इस मामले में कुछ भी नहीं) आउटपुट है अगर पहले डॉट के पहले अभिव्यक्ति सच है। दूसरी बिंदी के बाद का हिस्सा आउटपुट है अगर यह गलत है।

उदाहरण के लिए:

PS1='%n%m %~ %(?..[%?] )%# '