बैश वर्णमाला के एक अक्षर से अलग [या ]अपने दम पर वर्णों (अपने दम पर) का इलाज नहीं करता है।
इस मामले में बैश एक "शब्द" देखता है [, और उस नाम के साथ एक कमांड ढूंढता है। यदि आप अपने फाइल सिस्टम में देखते हैं, तो आप शायद पाएंगे कि /bin/[(या /usr/bin/[) एक निष्पादन योग्य फ़ाइल के रूप में मौजूद है। जैसा कि होता है, बैश भी एक अंतर्निहित संस्करण (दक्षता के लिए) प्रदान करता है, लेकिन यह सिर्फ एक कार्यान्वयन विवरण है।
[(के रूप में, उस नाम के साथ निष्पादन योग्य) आदेश, एक नियम है कि पिछले पैरामीटर आप इसे पारित किया जाना चाहिए है ]वरना यह एक त्रुटि फेंकता है। यह आंशिक रूप से हो सकता है क्योंकि यह सौंदर्यवादी रूप से मनभावन है, लेकिन यह आपको गलती से काटे गए आदेशों से बचाने के लिए भी कार्य करता है, जो अच्छा है।
तथ्य यह है कि ये विशेष नहीं हैं , इसलिए आप पहले [या बाद में सफेद स्थान को छोड़ नहीं सकते हैं ]।
अपवाद :
- जब
[और ]एक ही शब्द के भीतर सही स्वरूप में पाए जाते हैं, जैसे [a-z], तो वह है विशेष और पार्टी के ग्लोबिंग नियम लागू होते हैं।
[[आदेश है विशेष और कई कार्य कर सकता [नहीं कर सकते हैं (और पैरामीटर के अंदर [[ .. ]]अलग ढंग से कार्रवाई की जाती है, जैसा कि कुछ लाइन ब्रेक कर रहे हैं)। संबंधित ]]भी विशेष है, क्योंकि यह एक शेल आरक्षित शब्द है जो कमांड नाम नहीं हो सकता है, और [[कीवर्ड के बाद आने वाले विशेष प्रसंस्करण को समाप्त करता है ।
[एक आत्मनिर्भर कमांड है: -rwxr-xr-x 1 रूट रूट 39552 Dec 3 18:14 / usr / bin / [हालांकि यह संभव है कि "समानांतर" बिल्ट-इन भी हो, जैसे कि इसके लिए है उदाहरण के लिएkill। कुछ सिस्टम पर,testकमांड एक प्रतीकात्मक लिंक है[या इसके विपरीत। AFAIK,]अपने आप से कुछ भी मतलब नहीं है, लेकिन एक "बंद" करने के लिए स्वीकार किया जाता है[- लेकिन यह "सौंदर्यवादी" कारण के लिए अधिक है।