शेल स्क्रिप्ट में "बैश-इस्स" से बचना


37

क्या पर्ल के समान एक उपकरण मौजूद है :: आलोचना जो आपकी शेल स्क्रिप्ट का निरीक्षण करेगी और खामियों, पोर्टेबिलिटी के मुद्दों, गैर-मानक कार्यक्रमों का उपयोग बिना कमियां, मूल्यह्रास कार्यक्रम का उपयोग, आदि के बारे में बताएगी?

मुझे लगता है कि set -o posixयह गैर-पॉसिक्स उपयोग को अक्षम कर देगा, लेकिन यह मुझे उन चीजों को नहीं बताएगा जो मैं जानना चाहता हूं, जैसे कि 1 पर शुरू होने वाले शेल इंडेक्सिंग शेल एरेस, और 0 से बैश, और ऐश को ऐरे सपोर्ट नहीं करना।

जवाबों:


36

नहीं है checkbashisms । डेबियन पर, इसे पैकेज मेंटेनर टूल्स के हिस्से के रूप में शिप किया गया है ।

डैश और पॉश के तहत अपनी स्क्रिप्ट का परीक्षण करें । दोनों में कुछ गैर POSIX निर्माण हैं, लेकिन यदि आपकी स्क्रिप्ट दोनों में काम करती है, तो अधिकांश स्थानों पर काम करने की संभावना है। (इस चेतावनी के साथ कि विशिष्ट शेल स्क्रिप्ट का परीक्षण करना कठिन है, क्योंकि उनमें बहुत से कोने मामले हैं।)

यदि आप अपनी स्क्रिप्ट को एम्बेडेड लिनक्स प्लेटफार्मों पर पोर्टेबल करने का इरादा रखते हैं, तो उन्हें बिजीबॉक्स के साथ परीक्षण करें । ध्यान दें कि बिजीबॉक्स कम या ज्यादा प्रतिबंधित हो सकता है, यह इस बात पर निर्भर करता है कि आप कितना छोटा एम्बेडेड सिस्टम चाहते हैं; स्क्रिप्ट्स का होना काफी सामान्य है जो एक ऐसी सुविधा पर निर्भर करता है जो कुछ बिजीबॉक्स इंस्टॉलेशन के पास नहीं है।

ध्यान दें कि गैर-पोर्टेबिलिटी अकेले शेल से नहीं आती है, यह बाहरी उपयोगिताओं से भी आती है। OpenBSD और Solaris में POSIX सुविधाओं के साथ उपयोगिताओं हैं और बहुत अधिक नहीं हैं, इसलिए वे पोर्टेबिलिटी के लिए परीक्षण के लिए अच्छे हैं।

आप POSIX विनिर्देश , और इस धागे में वर्णित अन्य संसाधनों (विशेष रूप से ऑटोकॉन्फ़ मैनुअल ) को संदर्भित करना चाहते हैं ; लेकिन यह प्रलेखन है, यह मदद नहीं करता है अगर आप गलती से एक सुविधा का उपयोग करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.