यह मुख्य रूप से यह सुनिश्चित करने के रूप में कार्य करता है कि POSIX उपकरण-छाती एक शेल के अंदर और बाहर दोनों उपलब्ध है ( उन की आवश्यकता के लिए POSIX औचित्य देखें )।
इसके लिए cd
, यह बहुत उपयोगी नहीं है, लेकिन ध्यान दें कि cd
निर्देशिकाओं को बदलता है, लेकिन अन्य दुष्प्रभाव हैं: यह एक निकास स्थिति देता है जो यह निर्धारित करने में मदद करता है कि आप chdir()
उस निर्देशिका में सक्षम हैं या नहीं, और एक उपयोगी त्रुटि संदेश को यह बताते हुए आउटपुट करता है कि आप क्यों नहीं कर सकते। chdir()
जब आप नहीं कर सकते।
उदाहरण:
dirs_i_am_able_to_cd_into=$(find . -type d -exec cd {} \; -print)
एक अन्य संभावित दुष्परिणाम एक निर्देशिका का स्वचालित होना है।
कुछ सिस्टमों पर, मानक शेल बिल्डरों के लिए अधिकांश बाहरी कमांड उसी स्क्रिप्ट के सिम्कलिन के रूप में कार्यान्वित किए जाते हैं:
#! /bin/sh -
"${0##*/}" "$@"
यह एक शेल शुरू कर रहा है और इसमें बिलिन चला रहा है।
कुछ अन्य प्रणालियाँ (जैसे कि GNU) में सही निष्पादन योग्य कमांड के रूप में उपयोगिताओं हैं, जो शेल बिलिन संस्करण से भिन्न होने पर भ्रम पैदा कर सकती हैं।
/usr/bin/cd
केवल शेल-इन-शेल ही नहीं है ।