कभी-कभी मैं $PROJECT_HOME/*
प्रोजेक्ट में सभी फ़ाइलों को हटाने के लिए उपयोग करता हूं । जब पर्यावरण चर, PROJECT_HOME
सेट नहीं किया जाता है (क्योंकि मैंने किया था su
और नए उपयोगकर्ता के पास यह पर्यावरण चर सेट नहीं है), यह रूट फ़ोल्डर से सभी फ़ाइलों को हटाना शुरू कर देता है। यह सर्वनाश है।
bash
जब मैं शेल में अपरिभाषित पर्यावरण चर का उपयोग करता हूं, तो मैं त्रुटि फेंकने के लिए कैसे कॉन्फ़िगर कर सकता हूं ?
[ -z "$VAR" ]
एक असिंचित के साथ VAR
भी काम करता है। आरंभीकरण सिर्फ अवांछनीय व्यवहार दिखाने के लिए था - मेरा कहना है, यदि आपके संस्करण कभी भी खाली तारों के लिए आरंभीकृत नहीं होते हैं, तो आप जिस भी तरीके से और आप rm -r "$PROJECT_HOME"/*
गलती से भरोसा करते हैं set -u
, आपको "एपोकैलिक" व्यवहार मिलेगा। IHMO, आपके कंप्यूटर की संपूर्ण सामग्री की सुरक्षा करने के लिए क्षमा करने से सुरक्षित रहना बेहतर है। set -u
सुरक्षित नहीं है।
PROJECT_HOME=/etc
? बस एक खाली मूल्य के लिए जाँच करना प्रलय को रोकने के लिए पर्याप्त नहीं है। रूट के रूप में चलने के दौरान आपको अविश्वसनीय उपयोगकर्ताओं से चर का उपयोग नहीं करना चाहिए।
set -u
जो चाहोगे, करोगे।