प्रयत्न:
my_command || { echo 'my_command failed' ; exit 1; }
चार बदलाव:
- बदलें
&&
करने के लिए||
- के
{ }
स्थान पर उपयोग करें( )
- के
;
बाद परिचय exit
और
{
पहले और बाद के रिक्त स्थान}
चूंकि आप संदेश को प्रिंट करना चाहते हैं और केवल तभी बाहर निकलते हैं जब कमांड विफल हो जाता है (गैर-शून्य मान के साथ बाहर निकलता है) आपको एक की आवश्यकता ||
नहीं है &&
।
cmd1 && cmd2
cmd2
जब cmd1
सफल होगा (निकास मान 0
) चलेगा । जहाँ तक
cmd1 || cmd2
विफल cmd2
होने पर चलेगा cmd1
(निकास मान शून्य नहीं)।
उपयोग करने ( )
से उनके अंदर का कमांड उप-शेल में चलता है और exit
वहां से कॉल करने से आप सब-शेल से बाहर निकल सकते हैं और आपका मूल शेल नहीं, इसलिए निष्पादन आपके मूल शेल में जारी रहता है।
इस उपयोग को दूर करने के लिए { }
अंतिम दो परिवर्तनों को बैश द्वारा आवश्यक है।