আমি যখন নতুন শেল চালাচ্ছি তখন কেন শেল পরিবর্তন হবে না?


14
 $ echo $SHELL
/bin/bash
 $ /bin/ksh93
 $ echo $SHELL
/bin/bash
 $ file /bin/ksh93
/bin/ksh93: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), 
dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped

 $ getent passwd test111
test111:x:1008:1008:,,,:/tmp:/bin/ksh93
 $ ssh test@localhost
test@localhost's password:
 $ echo $SHELL
/bin/ksh93
 $ bash
 $ echo $SHELL
/bin/ksh93

আমি আশা করি $SHELLঅন্য শেল চালানোর পরে পরিবর্তন হবে। কেন হয় না?

পিএস তবে শেলটি পরিবর্তিত হয়, কেবল EL শেল পরিবর্তনশীলটি একই থাকে:

 $ dash
 $ echo $SHELL
/bin/bash
 $ T=test ; [[ $T = *est ]] && echo ok
dash: [[: not found

2
echo $0বর্তমান শেলটি পেতে ব্যবহার করুন
মনুলা বৈদ্যনাথ

উত্তর:


13

আপনার এই পরিবর্তনশীলটি পরিবর্তনের আশা করা উচিত নয়। এটি আপনার ডিফল্ট শেলটির পাথ সংরক্ষণ করতে ব্যবহৃত হয়, যেমন পাসওয়ার্ড ডাটাবেসে সংরক্ষিত একটি, বর্তমানে আপনি কোন শেলটি চালাচ্ছেন তা নয়।


8

SHELLহয় POSIX দ্বারা নির্দিষ্ট । বরাত দিয়ে:

এই পরিবর্তনকটি ব্যবহারকারীর পছন্দের কমান্ড ভাষা দোভাষী দের একটি নামের প্রতিনিধিত্ব করবে SH [...]

একটি পৃথক শেল চালানো ব্যবহারকারীর পছন্দের পরিবর্তনটি অগত্যা নির্দেশ করে না।

পসিক্স যে ধরণের জিনিসগুলি নির্দিষ্ট করে এবং কীভাবে সেগুলি সন্ধান করা যায় সেগুলি শিখাই ভাল, যেহেতু বেশিরভাগ * .nix সিস্টেমগুলি পসিক্স সম্মতির জন্য লক্ষ্য করে। পরিবেশের ভেরিয়েবল সেই জিনিসগুলির মধ্যে একটি।


-3

শেল ভেরিয়েবল আপনার সেশনের জন্য প্যারেন্ট শেলটি সঞ্চয় করে যা কখনও কখনও আপনার ডিফল্ট লগইন শেলের সাথে মেলে । $ শেল হ'ল প্যারেন্ট শেল যা বর্তমান অধিবেশন তৈরি করেছে।

সুতরাং, যদি আমি আমার ব্যবহারকারীর জন্য ব্যাশ ব্যবহার করি এবং এটি করি:, আমি chsh -s /bin/zsh userযখন করি তখন echo $SHELLপ্রদর্শিত শেলটি এখনও থাকবে BASH

দেখতে এই নিবন্ধটি


4
আপনার নিবন্ধটি লিঙ্কটি ভুল। এটি অন্যভাবে, যেমন শেল আপনার ডিফল্ট লগইন শেল (শেষ লগইন সময়) সঞ্চয় করে যা কখনও কখনও আপনার প্যারেন্ট শেলের সাথে মেলে। এই পরিবর্তনশীলটি কখনই আপনার পিতামাতা বা বর্তমান শেল দ্বারা সংশোধিত হয় না। তারা করতে পারে কেবলমাত্র অ্যাকশন হ'ল (অপ্রত্যাশিতভাবে) সেট না করা থাকলে সেটি সেট করা।
jlliagre
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.