বাশের সামনে ড্যাশ (-)


14

যদি আমি একটি OS X এর মধ্যে আমার ব্যাশ শেল পরীক্ষা (10.6.4) যেমন টাইপ করে যেমন টার্মিনাল, echo $0, আমার শেল সামনে একটি ড্যাশ, এই মত হল: -bash। এই ড্যাশ মানে কি?

উত্তর:


14

এর অর্থ এটি bashলগইন শেল হিসাবে ডাকা হয়।


man bash বলেছেন:

লগইন শেল এমন একটি যার আর্গুমেন্ট শূন্যের প্রথম অক্ষর a -বা --loginবিকল্পটি দিয়ে শুরু করা হয়েছে ।

যখন বাশকে একটি ইন্টারেক্টিভ লগইন শেল বা বিকল্প হিসাবে একটি ইন্টারেক্টিভ শেল হিসাবে ডাকা হয় --login, এটি প্রথমে ফাইলটি থেকে কমান্ডগুলি পড়ে এবং কার্যকর করে /etc/profile, যদি সেই ফাইলটি বিদ্যমান থাকে। যে ফাইল পড়ার পর, এটা জন্য দেখায় ~/.bash_profile, ~/.bash_loginএবং ~/.profile, যাতে, এবং পড়ে এবং প্রথম এক যে বিদ্যমান এবং পাঠযোগ্য থেকে, executes কমান্ড। --noprofileবিকল্প ব্যবহার করা যেতে পারে যখন শেল এই আচরণ বাধা হতে শুরু করেছে।

লগইন শেলটি যখন প্রস্থান করে, বাশ ~/.bash_logoutউপস্থিত থাকে তবে ফাইলটি থেকে আদেশগুলি পড়ে এবং সম্পাদন করে ।


আপনি login -pfআপনার psআউটপুট খুঁজে পাবেন , যা ডিফল্টরূপে লগইন শেল শুরু করে।

দৌড়াতে চেষ্টা করুন login -pfএবং login -pflপার্থক্যটি দেখুন। man loginপার্থক্য বর্ণনা করে:

-lলগইন দ্বারা নির্বাহিত প্রোগ্রামকে বলে যে এটি কোনও লগইন সেশন নয় (কনভেনশন অনুসারে একটি লগইন সেশনটি হাইফেনের প্রথম চরিত্র হিসাবে প্রোগ্রামটিতে সংকেতযুক্ত argv[0]; এই বিকল্পটি এটি অক্ষম করে), এবং এটি chdir(2)ব্যবহারকারীর হোম ডিরেক্টরিতে প্রবেশ করা থেকে বাধা দেয় । ডিফল্ট হিফেন যুক্ত করা (এটি লগইন সেশন)।


দুর্দান্ত উত্তর, ব্যাখ্যাটির জন্য ধন্যবাদ এবং manউদ্ধৃত করেছেন
মার্শাল.আর

1
আমি উবুন্টু ব্যবহার করছি, এবং আমি এর বিভিন্ন আচরণ দেখতে পাচ্ছি echo $0: যদি আমি echo $0টার্মিনালটি টাইপ করি ctrl + alt + f1তবে ফলাফল হয় -bash; তবে আমি যদি এটি টাইমিনাল টাইপ করি তবে এটি ctrl + alt + tফলাফল হয় bash(কোনও অগ্রণী ড্যাশ নেই)। কেন আপনি ব্যাখ্যা করতে পারেন?
হিমশীতল শিখা

@ হিমায়িত-শিখা একটি লগইন শেল, অন্যটি নয়। নোট করুন যে ওএস এক্স টার্মিনাল এবং লিনাক্স টার্মিনালগুলির এক্ষেত্রে আলাদা আচরণ রয়েছে।
ড্যানিয়েল বেক

@ ড্যানিয়েলবেক এটির কোনও প্রমাণ নয় যে অন্যটি লগইন শেল নয়। বাশ যখন --loginআর্গুমেন্টের সাথে চালু করা হয় , এটি এতে পরিবর্তন করে না argv[0]তবে লগইন শেল হিসাবে কাজ করে।
Ruslan

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