मैं OS X Yosemite चला रहा हूं। मुझे बैश में साहचर्य सरणियों का उपयोग करने की आवश्यकता है इसलिए मैंने बैश को 4.x पर अपग्रेड करने के लिए होमब्रे का उपयोग करने का निर्णय लिया। मैंने निम्नलिखित चरण किए:
brew install bash
- मैं तो जोड़ा
/usr/local/bin/bash
करने के लिए/etc/shells
और अच्छा उपाय रिबूट। chsh -s /usr/local/bin/bash
- अच्छे उपाय के लिए, मैंने लॉग आउट किया और वापस लॉग इन किया, हालांकि एक साधारण टर्मिनल पुनरारंभ संभवत: पर्याप्त होगा।
जब मैं टर्मिनल खोलता हूं, तो चीजें ठीक लगती हैं। अगर मैं कहूं तो $SHELL --version
मुझे मिल जाएगा GNU bash, version 4.3.30(1)-release (x86_64-apple-darwin14.0.0)
। दुर्भाग्य से, अगर मैं कहता echo $BASH_VERSION
हूं कि मुझे मिलता है 3.2.53(1)-release
। इसके अलावा, मैं बैश 4.x की किसी भी उन्नत सुविधा का उपयोग नहीं कर सकता, जैसे कि सहयोगी सरणियाँ, जैसे, declare -A foo
कहते हैं -bash: declare: -A: invalid option
।
दिलचस्प है, echo $0
कहते हैं -bash
।
यहाँ क्या चल रहा है? मैं अपने सहयोगी सरणियाँ कैसे प्राप्त करूं?
which bash
देता है /usr/local/bin/bash
।
/etc/paths
है /usr/local/bin
से पहले /usr/bin
, ताकि मुद्दा हो प्रतीत नहीं होता है।