আমার ধারণা আপনি একটি উইন্ডোজ পটভূমি থেকে এসেছেন। সুতরাং আমি তাদের বিপরীতে করব (আমি লিনাক্সেও এক নতুন ধরনের)) জিনিসগুলি খুঁজে বের করতে কার্যকর হতে আমি আমার মন্তব্যে ব্যবহারকারীর জবাব পেয়েছি।
উইন্ডোজে ভেরিয়েবল স্থায়ী হতে পারে বা নাও হতে পারে। পরিবেশ পরিবর্তনশীল শব্দটি এসইটি কমান্ডের সাহায্যে সিএমডি শেলটিতে একটি পরিবর্তনশীল সেট অন্তর্ভুক্ত করে, পাশাপাশি যখন ভেরিয়েবলটি উইন্ডোজ জিইউআইয়ের মধ্যে সেট করা থাকে, এভাবে রেজিস্ট্রিতে সেট করা হয় এবং নতুন সিএমডি উইন্ডোতে দৃশ্যমান হয়। উদাহরণস্বরূপ উইন্ডোজে সেট কমান্ডের জন্য ডকুমেন্টেশন https://technet.microsoft.com/en-us/library/bb490998.aspx "পরিবেশের ভেরিয়েবলগুলি প্রদর্শন করে, সেট করে বা মুছে ফেলে para পরামিতি ব্যতীত ব্যবহৃত, সেটটি বর্তমান পরিবেশ সেটিংস প্রদর্শন করে।" লিনাক্সে, সেট পরিবেশের ভেরিয়েবলগুলি প্রদর্শন করে না, এটি শেল ভেরিয়েবলগুলি প্রদর্শন করে যা এটি কল করে না / এনভায়রনমেন্ট ভেরিয়েবল হিসাবে উল্লেখ করে। এছাড়াও, লিনাক্স ভেরিয়েবল সেট করার জন্য সেট ব্যবহার করে না (অবস্থানের পরামিতি এবং শেল বিকল্পগুলি বাদ দিয়ে, যা আমি শেষে নোট হিসাবে ব্যাখ্যা করি), কেবল সেগুলি প্রদর্শন করতে এবং তারপরে কেবল শেল ভেরিয়েবলগুলি প্রদর্শন করতে। উইন্ডোজ সেটিং এবং প্রদর্শনের জন্য সেট ব্যবহার করে যেমন একটি = 5 সেট করে, লিনাক্স দেয় না doesn't
লিনাক্সে, আমি অনুমান করি আপনি এমন একটি স্ক্রিপ্ট তৈরি করতে পারেন যা বুটআপে ভেরিয়েবল সেট করে, যেমন /etc/profile
বা/etc/.bashrc
অন্যথায়, সেগুলি স্থায়ী নয়। এগুলি র্যামে সংরক্ষিত আছে।
শেল ভেরিয়েবল এবং এনভায়রনমেন্ট ভেরিয়েবলের মধ্যে লিনাক্সের মধ্যে একটি পার্থক্য রয়েছে। লিনাক্সে, শেল ভেরিয়েবলগুলি কেবল বর্তমান শেলের মধ্যে থাকে এবং পরিবেশের ভেরিয়েবলগুলি সেই শেল এবং সমস্ত শিশু শেলগুলিতে থাকে।
set
কমান্ডের সাহায্যে শেল ভেরিয়েবলগুলি দেখতে পাবেন (যদিও লক্ষ করুন যে উইন্ডো থেকে ভিন্ন, ভেরিয়েবলগুলি সেট কমান্ডের সাথে লিনাক্সে সেট করা নেই)
set -o posix; set
(প্রথমে একবার সেট-পো পিক্সিং করা খুব বেশি অপ্রয়োজনীয় জিনিস প্রদর্শন করতে সহায়তা করে না)। তাইset
শেল ভেরিয়েবল প্রদর্শন করে।
আপনি এর সাথে পরিবেশের পরিবর্তনগুলি দেখতে পারেন env
কমান্ডটি
শেল ভেরিয়েবলগুলি উদাহরণস্বরূপ সেট করা হয় just a = 5
পরিবেশের ভেরিয়েবলগুলি রফতানির সাথে সেট করা হয়, এক্সপোর্ট শেল ভেরিয়েবল সেট করে
এখানে আপনি zzz = 5 এর সাথে শেল ভেরিয়েবল zzz সেট দেখেন এবং চলমান অবস্থায় এটি দেখায় set
তবে পরিবেশের ভেরিয়েবল হিসাবে প্রদর্শিত হয় না।
এখানে আমরা yyy রফতানির সাথে সেট দেখি, সুতরাং এটি পরিবেশের পরিবর্তনশীল। এবং এটি শেল ভেরিয়েবল এবং এনভায়রনমেন্ট ভেরিয়েবল উভয়ের অধীনে দেখায়
$ zzz=5
$ set | grep zzz
zzz=5
$ env | grep zzz
$ export yyy=5
$ set | grep yyy
yyy=5
$ env | grep yyy
yyy=5
$
অন্যান্য দরকারী থ্রেড
/unix/176001/how-can-i-list-all-shell-variables
/ubuntu/26318/enomot-variable-vs-shell-variable-what-the-differences
দ্রষ্টব্য- একটি পয়েন্ট যা কিছুটা বিস্তৃত হয় এবং আমি যেটা লিখেছি তার সাথে কিছুটা সংশোধনযোগ্য, তা হল, লিনাক্স ব্যাশে 'সেট' ব্যবহার করা যেতে পারে "পজিশনাল প্যারামিটার" এবং "শেল অপশন / বৈশিষ্ট্য", এবং প্রযুক্তিগতভাবে উভয়ই এগুলি ভেরিয়েবল, যদিও ম্যান পেজগুলি সেগুলি এর মতো বর্ণনা করে না। তবে এখনও, যেমনটি উল্লেখ করা হয়েছে, সেট শেল ভেরিয়েবল বা পরিবেশের ভেরিয়েবল সেট করবে না)। আপনি যদি set asdf
তবে এটি এসডিএফের জন্য 1 ডলার নির্ধারণ করে, এবং যদি আপনি echo $1
এসেডিএফ দেখতে পান। যদি তুমি করোset a=5
এটি ভেরিয়েবলটি সেট করবে না, সমান 5 5. এটি অবস্থানিক প্যারামিটার $ 1 সেট করবে "a = 5" এর স্ট্রিংয়ের সমান। সুতরাং আপনি যদি কখনও লিনাক্সে একটি = 5 সেট করতে দেখেছেন তবে এটি সম্ভবত ভুল হয়েছে যদি না কেউ that 1 এ আসলে স্ট্রিং a = 5 চায়। লিনাক্সের সেটটি সেট করতে পারে এমন অন্য জিনিসটি হ'ল শেল বিকল্প / বৈশিষ্ট্য। আপনি যদি সেট-ও করেন তবে আপনি তাদের একটি তালিকা দেখতে পাবেন। এবং আপনি উদাহরণস্বরূপ করতে পারেনset -o verbose
, বন্ধ, ভার্বোস চালু করতে (বিটিডব্লিউ ডিফল্টটি বন্ধ হয়ে যায় তবে এটি এর সাথে কোনও পার্থক্য রাখে না)। অথবা আপনি set +o verbose
ভার্বোস বন্ধ করতে করতে পারেন । উইন্ডোজ এর সেট কমান্ডের জন্য এরকম কোনও ব্যবহার নেই।