Unix सिस्टम की दिलचस्प binary files
- Unix सिस्टम में ऐसी binary files मौजूद हैं जिनके नाम एकल प्रतीक होते हैं.
/bin/[कमांड चलाने पर[नाम का प्रोग्राम देखा जा सकता है.[औरtestएक ही binary file की ओर संकेत करते हैं, और दोनों कमांड वास्तव में एक ही कार्य करते हैं.
test प्रोग्राम और [ का उपयोग
testप्रोग्राम का उपयोग shell में expressions का मूल्यांकन करने के लिए किया जाता है.- इसका उपयोग string comparison, number comparison, file conditions की जाँच आदि के लिए होता है.
testarguments लेकर expression का मूल्यांकन करता है, और सत्य होने पर 0 तथा असत्य होने पर 1 लौटाता है.
दोनों कमांड के मौजूद होने का कारण
testऔर[दोनों कमांड क्यों मौजूद हैं, यह स्पष्ट नहीं है, लेकिन अनुमान है कि यह readability बढ़ाने के लिए है.[कमांड का उपयोग करने परtestकी तुलना में conditions को अधिक साफ़ तरीके से व्यक्त किया जा सकता है.[का उपयोग करते समय कमांड का अंतिम argument]से समाप्त होना चाहिए.
built-in commands और external binary files का अंतर
testऔर[shell scripts में अक्सर उपयोग होते हैं, इसलिए अधिकांश shells में इन्हें built-in command के रूप में लागू किया गया है.- built-in command और external binary file का उपयोग करने पर अलग व्यवहार दिख सकता है, और shell के अनुसार भी अंतर हो सकता है.
[[ का उपयोग और अंतर
[[एक Bash extension है जो[के उपयोग का विकल्प देता है.[[built-in command होने के कारण expression के भीतर भाषा के मूल नियमों को बदल सकता है.[[string comparison के समय glob patterns को literal की तरह मान सकता है, जिससे अलग परिणाम मिल सकते हैं.
shell script लिखते समय चयन
- portable shell scripts लिखते समय
[का उपयोग करना बेहतर है. - अगर आप Bash-विशेष script लिख रहे हैं, तो
[[अधिक सुविधाएँ प्रदान करता है.
shell expressions और test expressions का संयोजन
- shell के पास
!,&&,||operators के माध्यम से अपने expressions होते हैं. testexpressions और shell expressions को एक ही कमांड में जोड़ा जा सकता है.
GN⁺ की राय
इस लेख का सबसे महत्वपूर्ण बिंदु यह है कि Unix सिस्टम में [ और test एक ही कार्य करने वाले दो अलग कमांड के रूप में मौजूद हैं, और अनुमान है कि ऐसा shell scripts की readability और efficiency बढ़ाने के लिए किया गया है. यह जानकारी शुरुआती software engineers के लिए shell scripts लिखते या समझते समय उपयोगी हो सकती है, और shell scripts के काम करने के तरीके तथा अलग-अलग shells के बीच के अंतर को समझने में मदद करती है. यह लेख इसलिए दिलचस्प है क्योंकि यह दिखाता है कि shell scripting के बुनियादी tools को कितने अलग रूपों में इस्तेमाल किया जा सकता है, और shell programming की जटिलता तथा लचीलापन अच्छी तरह उजागर करता है.
1 टिप्पणियां
Hacker News राय
मूल लेखक का धन्यवाद संदेश और शीर्षक संशोधन का सुझाव
Bourne shell के "test" कमांड का इतिहास और व्यक्तिगत पसंद
ifब्लॉक का उपयोग किए बिना conditional statement का उदाहरणifब्लॉक और सामान्य कमांड को मिलाकर उपयोग करने का तरीकाtestकमांड में logical operation के उपयोग पर विचार"test" कमांड के उपयोग के फायदे और "man test" की सुविधा
[औरtestके single-argument behavior पर सावधानीLinux और NetBSD में
/bin/[और/bin/testका अंतरtest/[/[[पर गहराई से चर्चा और shell की अजीब बातों पर ब्लॉग लिंक साझायह इंगित किया गया कि
[[सिर्फ bash के लिए है, और यदि bash का उपयोग निश्चित है तो[[इस्तेमाल करने की सलाहइस बात पर भ्रम कि
[bash scripting language का हिस्सा नहीं हैshell पर तीखी राय और
[के उपयोग का विरोध