@ আপগ্রেড সমস্যার সাথে সম্পর্কিত [এমকিলেটমেন্ট0] পোস্ট করেছেন দুর্দান্ত ব্যাখ্যা এবং সমাধানের জন্য এখানে দেখুন bash
।
আমার সিস্টেমে বিপরীতে কাজ করার ক্ষেত্রে আমার একই সমস্যা ছিল (ওএস এক্স 10.10.1): bash
আমি ইনস্টল করার পরে আবার ডিফল্ট লগইন শেল oh-my-zsh
তৈরি করা , যা zsh
ডিফল্ট তৈরি হয়েছিল এবং তারপরে bash
হোমব্রিউ ব্যবহার করে 3.2.53 থেকে 4.3.30 এ আপগ্রেড করা হয়েছে ( কেন পুরানো bash
সংস্করণ সহ অ্যাপল শিপিং ইয়োসেমাইট ?) সংস্করণ।
আমি মনে করি SHELL
পরিবেশ পরিবর্তনশীল প্রতিফলিত করে তবে ব্যবহারকারীর জন্য প্রকৃত ডিফল্ট লগইন শেলটি নিয়ন্ত্রণ করে না । উদাহরণস্বরূপ, যদি, বলুন, bash
আপনার ডিফল্ট ছিল এবং আপনি bash
টার্মিনাল থেকে একটি নতুন শেল উইন্ডো খুলেন তবে প্রদর্শিত $ export SHELL="/bin/zsh"; echo "$SHELL"
হবে /bin/zsh
তবে প্রকৃত কোনও পরিবর্তন ঘটবে না কারণ আপনি যদি টার্মিনাল থেকে একটি নতুন শেল উইন্ডো খোলেন এবং এটি করেন $ echo $0
তবে আপনি দেখতে পাবেন -bash
( $0
নাম এবং পথ রয়েছে এই ক্ষেত্রে শেল উইন্ডো শুরু হওয়া কমান্ডের bash
এবং-
পরবর্তীটি এটি লগইন শেল বলে ইঙ্গিত দেয়)।
@ এমকিলেটমেন্ট ০ ইঙ্গিত করে যে ব্যবহারকারীর জন্য প্রকৃত ডিফল্ট লগইন শেলটি UserShell
সিস্টেমের অভ্যন্তরীণ ডাটাবেসে ব্যবহারকারীর রেকর্ডে থাকা সম্পত্তি দ্বারা নিয়ন্ত্রিত হয় - এটি কমান্ড লাইন ইউটিলিটি ব্যবহার করে অনুসন্ধান করা এবং আপডেট করা যেতে পারেdscl
। আপনি যখন শেল উইন্ডো খুলবেন তখন এই তথ্যটি আপনার টার্মিনাল অ্যাপ্লিকেশনটিতে চলে যাবে।
chsh -s /bin/zsh
এই UserShell
সম্পত্তিটি সেট করতে কী পরিবর্তন হয় zsh
- আপনি ততক্ষনে তা করে এটি পরীক্ষা করতে পারেন dscl . -read /Users/$USER/ UserShell
এবং আপনি দেখতে পাবেন UserShell: /bin/zsh
। কিন্তু পরিবর্তন হয় না বর্তমান উইন্ডোতে প্রভাবিত, যতক্ষণ না আপনি ভালো কিছু করতেexec su - $USER
, অথবা আপনি ঘনিষ্ঠ পর্যন্ত এবং একটি শেল উইন্ডো খুলতে যেমন @ mklement0 দ্বারা প্রস্তাবিত।
/etc/shells
? ম্যানুয়ালটিতে উল্লেখ করা হয়েছে যে আপনি যে শেলটি নির্দিষ্ট করেছেন সেটি যদি সেই ফাইলে না থাকে তবে এটি স্ট্যান্ডার্ড শেল হিসাবে বিবেচিত হবে না।