যদি আমি একটি OS X এর মধ্যে আমার ব্যাশ শেল পরীক্ষা (10.6.4) যেমন টাইপ করে যেমন টার্মিনাল, echo $0, আমার শেল সামনে একটি ড্যাশ, এই মত হল: -bash। এই ড্যাশ মানে কি?
যদি আমি একটি OS X এর মধ্যে আমার ব্যাশ শেল পরীক্ষা (10.6.4) যেমন টাইপ করে যেমন টার্মিনাল, echo $0, আমার শেল সামনে একটি ড্যাশ, এই মত হল: -bash। এই ড্যাশ মানে কি?
উত্তর:
এর অর্থ এটি 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)ব্যবহারকারীর হোম ডিরেক্টরিতে প্রবেশ করা থেকে বাধা দেয় । ডিফল্ট হিফেন যুক্ত করা (এটি লগইন সেশন)।
echo $0: যদি আমি echo $0টার্মিনালটি টাইপ করি ctrl + alt + f1তবে ফলাফল হয় -bash; তবে আমি যদি এটি টাইমিনাল টাইপ করি তবে এটি ctrl + alt + tফলাফল হয় bash(কোনও অগ্রণী ড্যাশ নেই)। কেন আপনি ব্যাখ্যা করতে পারেন?
--loginআর্গুমেন্টের সাথে চালু করা হয় , এটি এতে পরিবর্তন করে না argv[0]তবে লগইন শেল হিসাবে কাজ করে।
manউদ্ধৃত করেছেন