मैं सोच रहा था कि क्या शेल स्क्रिप्ट के भीतर वर्तमान उपयोगकर्ता के डिफ़ॉल्ट शेल का पता लगाने का कोई तरीका है?
मामले का उपयोग करें: मैं एक स्क्रिप्ट पर काम कर रहा हूं जो एक कमांड के लिए एक उपनाम सेट करता है और यह उपनाम शेल स्क्रिप्ट के भीतर सेट किया गया है।
!# /bin/bash
alias = 'some command to set the alias'
स्क्रिप्ट में एक तर्क है जहां यह उपयोगकर्ता के डिफ़ॉल्ट शेल को खोजने की कोशिश करता है जो स्क्रिप्ट को निष्पादित करता है और इस उपनाम को संबंधित ~ / .bashrc या ~ / .zshrc फ़ाइल में जोड़ता है।
लेकिन जैसा कि मैं स्क्रिप्ट के सामने एक शेबंग जोड़ रहा हूं और स्पष्ट रूप से इसे bash का उपयोग करने के लिए कह रहा हूं , यहां पोस्ट किए गए उत्तर हमेशा अपेक्षित रूप से बैश वापसी करते हैं, हालांकि मैं एक ZSH टर्मिनल पर इस स्क्रिप्ट को निष्पादित कर रहा हूं।
क्या शेल प्रकार प्राप्त करने का एक तरीका है जहां स्क्रिप्ट को शेल्बर सेट की परवाह किए बिना निष्पादित किया जाता है?
मैं एक समाधान की तलाश में हूं जो मैक और सभी लिनक्स आधारित बिस्ट्रो दोनों पर काम करता है।
/etc/passwd
OSX पर क्या है ? मुझे त्वरित रूप से ऑनलाइन दिखाई दिया था और ऐसा प्रतीत होता है कि शेल वहाँ है, केवल उपयोगकर्ता नाम नहीं है। उपयोगकर्ता आईडी अभी भी वहाँ है, आप इसका उपयोग क्यों नहीं करते हैं?