शेल स्क्रिप्ट में चर के लिए नामकरण परंपराएं हैं?


113

अधिकांश भाषाओं में चरों के लिए नामकरण परंपराएँ हैं, जो कि शैल लिपियों में सबसे आम शैली है MY_VARIABLE=foo। क्या यह सम्मेलन या केवल वैश्विक चर के लिए है? स्क्रिप्ट के लिए स्थानीय चर के बारे में क्या?


1
केवल एक जिसे मैं जानता हूं कि सभी को पालन करना चाहिए सभी अपरकेस नाम शेल के लिए आरक्षित होने चाहिए। उन्हें इस्तेमाल अकस्मात की तरह कुछ महत्वपूर्ण clobbering से बचने के लिए नहीं है PATHया HOMEया कुछ और खोल भविष्य में आरक्षित हो सकता है।
20

3
दरअसल, सभी बड़े नाम आमतौर पर पर्यावरण चर के लिए उपयोग किए जाते हैं। कुछ चर (जैसे PATH) की व्याख्या शेल द्वारा की जाती है, जबकि अन्य (LANGUAGE या PRINTER की तरह) अन्य कार्यक्रमों द्वारा व्याख्या की जा सकती है, लेकिन उनके बारे में अन्यथा कुछ खास नहीं है।
jlp

'पर्यावरण चर' वास्तव में उचित नाम है, मैं इसे अपने उत्तर में शामिल करूंगा।
जिप्पी

आधिकारिक रूप से नहीं, जबकि इस Google मार्गदर्शिका में अच्छे सुझाव हैं: google.github.io/styleguide/shell.xml । यह सुझाव देता है कि सभी टोपियां केवल स्थिरांक और निर्यात किए गए चर के लिए चिपके रहें, बाकी सब चीजों के लिए सांप का मामला। व्यक्तिगत रूप से मुझे अपने ग्लोबल्स के लिए ऊंट का मामला पसंद है क्योंकि कोई भी इसकी सिफारिश नहीं करता है, जो नामकरण टकराव की संभावना को कम करता है। साथ ही मुझे उनके पढ़ने का तरीका पसंद है।
बाइनरी फाइल

जवाबों:


111

पर्यावरण चर या शेल चर जो ऑपरेटिंग सिस्टम या शेल स्टार्टअप स्क्रिप्ट आदि द्वारा पेश किए जाते हैं, आमतौर पर सभी में होते हैं CAPITALS

अपने स्वयं के चरों को इन चरों के साथ विरोध करने से रोकने के लिए, इसका उपयोग करना एक अच्छा अभ्यास है lower case


32
lower_caseअंडरस्कोर अलग हो गया या camelCase?
गैरेट हॉल

3
@GarrettHall यह पूरी तरह से आपके ऊपर है। एक बार जब आप इसके साथ एक छड़ी लेते हैं। वास्तविक पसंद की तुलना में संगति अधिक महत्वपूर्ण है।
20

2
स्वाद की बात? मुझे व्यक्तिगत रूप से सी-स्टाइल पसंद है camelCaseक्योंकि यह छोटा है और बदसूरत अंडरस्कोर का उपयोग नहीं करता है। स्वाद, शैली, ...
जिप्पी

19
स्वाद की बात? मुझे व्यक्तिगत रूप से अंडरस्कोर अलग, पढ़ने में आसान लगता है।
जोंस

4
पूर्णता के लिए, वातावरण चर पारंपरिक सभी अपरकेस खोल चर नाम का ही श्रेणी नहीं हैं - इस नियम भी builtins पर लागू होता है (जैसे PWD, PS4, या BASH_SOURCE)।
चार्ल्स डफी

62

हां, बैश के लिए पूर्ण कोड शैली सम्मेलन हैं, जिनमें चर नाम शामिल हैं। उदाहरण के लिए, यहां Google की शेल स्टाइल गाइड है

विशेष रूप से चर नामों के सारांश के रूप में:

वैरिएबल नाम : लोअर-केस, अलग शब्दों के साथ अंडरस्कोर। उदाहरण के लिए:my_variable_name

स्थिरांक और पर्यावरण चर नाम : सभी कैप्स, अंडरस्कोर के साथ अलग हो गए, फ़ाइल के शीर्ष पर घोषित किए गए। उदाहरण के लिए:MY_CONSTANT


1
उपरोक्त लिंक अब मृत हो गया है, लेकिन मेरा मानना ​​है कि यह वही है जो इससे जुड़ा हुआ है: google.github.io/styleguide/shell.xml
Sam

1
@ नमस्कार, धन्यवाद। हाँ, यह है कि। यह समय आ गया है जब Google ने googlecode.com lol
Anonsage

1
क्या आप हमेशा वही करते हैं जो Google कहता है? ;-)
tim.rohrer

1
ये कन्वेंशन केवल अपने स्वयं के ओपन सोर्स प्रोजेक्ट्स के लिए Google वाले हैं: हालाँकि वे बहुत अच्छे नियम हो सकते हैं, यह सभी प्रोजेक्ट्स पर लागू नहीं हो सकते ।
स्मोनफ

1

शब्दों को अलग करने के लिए अंडरस्कोर सबसे अच्छा तरीका लगता है।
जब मैं चुनने के लिए स्वतंत्र हूं, तो मेरे पास साँपों पर पसंद करने के कुछ कारण हैं:

  1. लचीला: आप ऊपरी मामले और निचले मामले (जैसे MY_CONSTANTऔर my_variable) का उपयोग कर सकते हैं ;
  2. सुसंगत: अंकों को अधिक पठनीय (जैसे 1_000_000_000) बनाने के लिए अंकों को अलग किया जा सकता है और यह सुविधा कई प्रोग्रामिंग भाषाओं में समर्थित है;
  3. सामान्य: बिंदु पर सामान्य रेगेक्स \wशब्द अक्षर और संख्याओं ( [a-zA-Z0-9_]) की तरह अंडरस्कोर को संभालता है ।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.