मैं वर्तमान में उत्पादन करने के लिए पिछले आदेश रन की वापसी कोड एक फ़ंक्शन को कॉल बैश में एक संकेत दिया है (यदि गैर शून्य):
exit_code_prompt()
{
local exit_code=$?
if [ $exit_code -ne 0 ]
then
tput setaf 1
printf "%s" $exit_code
tput sgr0
fi
}
PS1='$(exit_code_prompt)\$ '
यह नहीं बल्कि अच्छी तरह से काम करता है, $?
के अलावा जब तक एक और आदेश को रीसेट नहीं चलाया जाता है:
$ echo "works"
works
$ command_not_found
bash: command_not_found: command not found
127$
127$
127$
127$ echo "works"
works
$
यह संभव पुनर्स्थापित करने के लिए सेट किए बिना माता पिता के लिए $?
का मूल्य शैल पहली बार exit_code_prompt()
इस तरह चलाया जाता है कि यह शीघ्र में मूल्य को दोहराने के लिए जारी रखने के लिए नहीं है है /?
बहुत धन्यवाद, स्टीव।
आप ऐसा क्यों करना चाहते हैं? यदि आप कमांड लाइन पर मैन्युअल रूप से कुछ स्क्रिप्ट स्निपेट का परीक्षण करना चाहते हैं तो यह आपको अतिरिक्त परेशानी दे सकता है। – anishsane