यह सत्यापित करने के लिए कि मैं POSIX अनुपालन करता हूं, मैं एक शैल स्क्रिप्ट का परीक्षण कैसे कर सकता हूं? मेरे पास बैश के विभिन्न संस्करणों और संभवतः अन्य गोले के लिए लिखी गई स्क्रिप्ट का एक बड़ा सेट है। मैं यह निर्धारित करने में सक्षम होना चाहता हूं कि पूरी तरह से POSIX अनुपालन कौन सा है और जो नहीं हैं। आदर्श रूप से, मैं lint
जैसे कुछ खोलना चाहता हूं लेकिन शैल स्क्रिप्ट के लिए।POSIX खोल अनुपालन के लिए परीक्षण?
उत्तर
स्थाई रूप से यह सत्यापित करना संभव नहीं है कि कोई स्क्रिप्ट POSIX अनुपालन है क्योंकि मतभेद वाक्यविन्यास परिवर्तनों तक सीमित नहीं हैं और कुछ मतभेद कुछ आदेशों के व्यवहार को आसानी से बदलते हैं। यह link बैश और पॉज़िक्स मानक के बीच अंतर का वर्णन करता है।
हालांकि, आप bash --posix ./your_script.sh
के साथ चल रहे अपनी स्क्रिप्ट को स्पष्ट रूप से देख सकते हैं या set -o posix
का उपयोग कर सकते हैं।
दुर्भाग्यवश POSIX अनुपालन मोड नहीं है। Https://tiswww.case.edu/php/chet/bash/POSIX और आपके द्वारा पोस्ट किए गए यूआरएल के अंत देखें। कम से कम, आपको POSIX अनुपालन "गूंज" व्यवहार प्राप्त करने के लिए 'xpg_echo' विकल्प को सक्षम करने की भी आवश्यकता है। अन्य चीजें भी हैं। मैं पॉज़िक्स अनुपालन परीक्षण के लिए डैश का उपयोग करने का सुझाव देता हूं। –
- 1. शैल उपनाम POSIX अनुपालन कर रहे हैं?
- 2. ओपनआईडी प्रदाताओं के लिए अनुपालन परीक्षण
- 3. के लिए HIPAA अनुपालन
- 4. POSIX: लिनक्स
- 5. सी POSIX फ़ंक्शन के लिए शीर्षलेख
- 6. POSIX
- 7. पीडीएफ विनिर्देश अनुपालन परीक्षण नमूना फ़ाइलों
- 8. POSIX फ़ंक्शन निष्पादन योग्य के लिए पथ खोजने के लिए?
- 9. मछली खोल में स्ट्रिंग समानता/स्ट्रिंग तुलना के लिए परीक्षण?
- 10. आदेशों चल समाप्त जब खोल स्क्रिप्ट परीक्षण प्रयोजनों के लिए
- 11. POSIX OS'es
- 12. के लिए: ब्लॉक-कंटेनर और एफओपी अनुपालन
- 13. जावा के लिए FIPS अनुपालन एसएसएच लाइब्रेरी
- 14. HTTP 1.1 अनुपालन
- 15. स्क्रम अनुपालन
- 16. 508 अनुपालन
- 17. पीसीआई अनुपालन
- 18. खोल
- 19. एक बैश खोल स्क्रिप्ट का परीक्षण
- 20. रोक एंड्रॉयड स्टूडियो खोल प्रक्रिया अभ्यस्त परीक्षण
- 21. पायथन: "आयात POSIX" सवाल
- 22. POSIX सिग्नल व्यवहार
- 23. java.lang.UnsupportedOperationException: 'posix: अनुमतियाँ' Windows
- 24. लागू करने के लिए कैसे अवरुद्ध POSIX धागे
- 25. जीएलआईबी के GAsyncQueue बनाम POSIX message_queue
- 26. क्या 508 अनुपालन
- 27. ओपनसीएल अनुपालन डीएसपी
- 28. एक्सएचटीएमएल अनुपालन व्यर्थ है?
- 29. हेरोकू एचआईपीएए अनुपालन
- 30. ब्लूमिक्स एचआईपीएए अनुपालन है?
हालांकि यह पूर्ण POSIX अनुपालन के लिए परीक्षण करने का कोई दावा नहीं करता है, लेकिन इन पंक्तियों के साथ एक सामान्य रूप से उपयोग की जाने वाली स्क्रिप्ट ['checkbashisms'] (http://sourceforge.net/projects/checkbaskisms/) है। यह गैर पोर्टेबल वाक्यविन्यास पर परीक्षण और रिपोर्ट करता है। – John1024
डिफ़ॉल्ट रूप से #!/Bin/ksh का उपयोग करें, ताकि आप उन चीजों से बच सकें जो बाश में आसान हैं। यह केवल एक शुरुआत है, आपको लिनक्स सुधारों को भी छोड़ना चाहिए जैसे 'sed -i' –
संभावित डुप्लिकेट: http://stackoverflow.com/questions/3668665/is-there-a-static-analysis-tool-like-lint- या-perlcritic-for-shell-scripts –