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
... कुछ गोले में परिवार। देखें स्थानीय चर असाइनमेंट के लिए उद्धरण आवश्यक हैं? ब्योरा हेतु।