मैं एक बैश स्क्रिप्ट लिख रहा हूं और मेरे पास errexit
सेट है, इसलिए यदि कोई आदेश 0 निकास कोड वापस नहीं करता है, तो स्क्रिप्ट मर जाएगी, यानी यदि कोई आदेश सफलतापूर्वक पूरा नहीं होता है। यह सुनिश्चित करना है कि मेरी बैश स्क्रिप्ट मजबूत है।बैश स्क्रिप्ट - एक डिवाइस को उतारो, लेकिन अगर यह आरोहित नहीं है तो असफल न हों?
मुझे कुछ फाइल सिस्टम को माउंट करना है, कुछ फाइलों को कॉपी करना है, इसे umount करें। मैं शुरुआत में umount /mnt/temp
डाल रहा हूं ताकि यह कुछ भी करने से पहले इसे उछाल दे। हालांकि अगर यह आरोहित नहीं है तो umount विफल हो जाएगा और मेरी स्क्रिप्ट को रोक देगा।
क्या umount --dont-fail-if-not-mounted /mnt/temp
करना संभव है? तो अगर डिवाइस घुड़सवार नहीं है तो यह 0 वापस आ जाएगा? rm -f
की तरह?
umount .... || /bin/true
और आउटपुट को/dev/null पर रीडायरेक्ट करें: umount ...>/dev/null 2> & 1 ||/bin/true – knittl
ठीक है, यह क्रमिक स्थिति है। जारी रखने के इच्छुक स्क्रिप्ट की कल्पना करना आसान है, लेकिन लॉग स्ट्रीम में कोई त्रुटि संदेश छोड़ दें। –
आप इसे/bin/true (जो एक नई प्रक्रिया बनाता है) के बजाय छद्म-आदेश ':' (एक खोल निर्मित) का उपयोग कर थोड़ा तेज़ कर सकते हैं। यही है, "umount .... ||:' " –