मैं 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, ताकि मुद्दा हो प्रतीत नहीं होता है।