t\imeया \cd(या "tim"eया 'cd'या ${-##*}timeया ${-+time}और के हवाले से और विस्तार आपको लगता है कि के बारे में सोच सकता है अंत में करने के लिए हल होगा की हर दूसरे संयोजन timeया cdलिखने के लिए एक और तरीका है:), वह यह है कि cdऔर time।
हालाँकि, वह अंततः शेल सिंटैक्स पार्सिंग और व्याख्या के बाद cdया उसके बाद हल हो जाएगा time। विशेष रूप से, शेल कीवर्ड की मान्यता और उपनाम प्रतिस्थापन के लंबे समय बाद होता है।
इसलिए, जिस समय शेल अपनी भाषा में कीवर्ड खोज रहा है, वह शेल कीवर्ड के ti\meरूप में पहचान नहीं कर रहा है time। तो एक:
ti\me echo test
एक साधारण कमांड के बाद एक साधारण कमांड के रूप में शेल द्वारा पहचाना जाएगा time।
फिर उद्धृत करने की ti\meप्रक्रिया की जाएगी (यहाँ कि बैकस्लैश उस mपात्र को उद्धृत कर रहा है, जिसे वैसे भी उद्धृत करने की आवश्यकता नहीं है, उद्धृत वर्ण हटा दिया गया है, आपको मिल जाएगा time) और एक time कमांड को किसी अन्य कमांड की तरह देखा जाएगा (बिलिन की सूची में) , कार्यों और निष्पादन योग्य फ़ाइलों में $PATH। सबसे अधिक संभावना है कि /bin/timeयहाँ होगा )
इसके लिए cd, cdशेल भाषा में कोई कीवर्ड नहीं है , बस एक cdअंतर्निहित कमांड (जो आपके ऊपर पूर्वता लेता है /usr/bin/cd)। हालांकि, यदि आप cd(जैसे alias cd=pushd) के लिए एक उपनाम को परिभाषित करते हैं, तो फिर से। जैसा कि उपनाम हटाने का काम बहुत पहले किया जाता है, उद्धरण हटाने से पहले, यदि आपके पास एक के लिए एक उपनाम है cdऔर नहीं के लिए \cd(ध्यान दें कि कई गोले उन में बैकस्लैश के साथ उपनाम की अनुमति नहीं देते हैं), तो लिखकर:
\cd dir
आप यह सुनिश्चित कर रहे हैं कि आपका cdउपनाम प्रतिस्थापित नहीं किया गया है।
संक्षेप में, एक आदेश का नाम या उसके किसी भी हिस्से के हवाले से एक खोल कीवर्ड के रूप में देखा जा रहा से रोकता है (कीवर्ड्स जा रहा है चीजों की तरह while, for, if, {... timeमें एक कीवर्ड है कुछ ही गोले), और नजरअंदाज एक उपनाम आप इसके लिए हो सकता है ।
हालांकि यह उस कमांड को एक निष्पादन योग्य फ़ाइल में हल करने के लिए मजबूर नहीं करता है $PATH, कमांड को अभी भी फ़ंक्शंस के बीच पहले खोजा जाता है (जो आप कर के आसपास काम कर सकते हैं command time cmd...) और बिल्डिंस (जो आप कर के आसपास काम कर सकते हैं env time cmd..., हालांकि मुझे नहीं पता है एक शेल जिसमें बिलिन timeकमांड होता है)।
ध्यान दें कि हवाले से भी की विशेष builtins के व्यवहार पर एक प्रभाव हो सकता है typeset/ declare/ export/ local... कुछ गोले में परिवार। देखें स्थानीय चर असाइनमेंट के लिए उद्धरण आवश्यक हैं? ब्योरा हेतु।