কেন ম্যাক ওএস এক্স উত্স ~ / .bashrc নয়? [প্রতিলিপি]


95

এই প্রশ্নের ইতিমধ্যে এখানে একটি উত্তর আছে:

আমি অনেক লোককে খুঁজে পেয়েছি কেন নির্দেশনা এর সাথে অনুরূপ:

Put X to your ~/.bashrc and you can do Y

কাজ করবেন না

এটি সর্বদা প্রমাণিত হয় যে ম্যাক ওএস এক্স-এর ব্যাশের প্রারম্ভিক ফাইলগুলি (বা ম্যাকের ব্যাশ নিজেই) লগইন শেল বা উইন্ডো সিস্টেম থেকে তৈরি শেল - ম্যাক ওএস এক্স-এর টার্মিনাল অ্যাপ্লিকেশন হিসাবে) source / .bashrc ফাইলের উত্স নয়)

এটি কেন, যখন আমি আগে কাজ করেছি বাশের সাথে অন্যান্য সমস্ত ইউনিক্সের মতো সিস্টেমগুলি এই কাজটি করেছিল?

দ্রষ্টব্য:

স্টার্টআপ ফাইল সম্পর্কে বাশ নিজেই যা বলেছিল তা পেয়েছি (যা সহায়ক হতে পারে):

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

সূত্র: http://www.gnu.org/software/bash/manual/bashref.html#Bash- স্টার্টআপ- ফাইল


আমি এটাও লক্ষ্য করেছি যে ~/.bash_profileমৃত্যুদন্ড কার্যকর করা হয়েছে তবে তা হয় নি ~/.bashrc। Wierd।
ইগৌরব

উত্তর:


90

ওএসএক্সে টার্মিনালটিতে ডিফল্টরূপে একটি লগইন সেশন শুরু হয় যাতে .bash_profile ইত্যাদি পড়ে (জিওআইআই লগইন প্রক্রিয়া যা আপনার নাম এবং পাসওয়ার্ডের জন্য জিজ্ঞাসা করে শেল স্ক্রিপ্ট ব্যবহার করে না এবং কোনও শেল শুরু না করে এটি সমস্ত লঞ্চ এবং কর্মক্ষেত্র থেকে সম্পন্ন হয়)

অন্যান্য ইউনিটগুলিতে এক্সটারেম ডিফল্টরূপে একটি অ লগইন শেল চালায় তাই তারা .bashrc স্ক্রিপ্ট হিসাবে পড়বে যা আপনাকে আপনার পাসওয়ার্ড ইত্যাদির সাথে লগইন করার সময় লগইন সেশনে কল দেয় এবং সমস্ত টার্মিনাল এটির উপ-প্রক্রিয়া হয় এবং শেল পরিবেশের উত্তরাধিকারী হয়।

আপনি উল্লেখ করেছেন এমন জিএনইউ নথি থেকে

ইন্টারেক্টিভ অ-লগইন শেল হিসাবে আহ্বান করা হয়েছে

লগইন শেল নয় এমন একটি ইন্টারেক্টিভ শেলটি যখন শুরু হয়, বাশ file / .bashrc থেকে কমান্ডগুলি পড়ে এবং কার্যকর করে, যদি সেই ফাইলটি বিদ্যমান থাকে। এটি --norc বিকল্প ব্যবহার করে বাধা দেওয়া হতে পারে। --Rcfile ফাইল অপশনটি বাশকে from / .bashrc এর পরিবর্তে ফাইল থেকে আদেশগুলি পড়তে এবং সম্পাদন করতে বাধ্য করবে।

সুতরাং, সাধারণত আপনার ~ / .bash_ প্রোফাইলে লাইন থাকে

if [ -f ~/.bashrc ]; then . ~/.bashrc; fi 

যেকোন লগইন-নির্দিষ্ট সূচনা (বা তার আগে) পরে।


7
ইউনিসিস = ইউনিক্স?
পল ব্রুউকজিনস্কি

8
ওয়েল Unices আমি অভিপ্রেত - আমি স্কুলে ল্যাটিন শোয়াবে তাই বহুবচন উন্মুলয়িতা - দেখুন en.wikipedia.org/wiki/Unix
user151019

8
... এবং তৃতীয় ফর্ম "ইউনিক্সেন" (যদিও আমি ইউনিসিকে পছন্দ করি)
ইয়ারক্যাম

7
এবং চতুর্থ "ইউনিকর্নস" ...
টিঙ্ক

8
আসুন নাল ফর্মটি, অর্থাৎ "নপুংসক" ভুলে যাবেন না
স্ম্যাটথিউইংলিশ

19

bashশুধুমাত্র সার্চ .bashrcজন্য অ লগইন শাঁস:

লগইন শেল নয় এমন একটি ইন্টারেক্টিভ শেলটি যখন শুরু হয়, তখন ফাইলটি উপস্থিত থাকলে ash / .bashrc থেকে আদেশগুলি পড়ে এবং কার্যকর করে। এটি --norc বিকল্প ব্যবহার করে বাধা দেওয়া হতে পারে। --Rcfile ফাইল অপশনটি বাশকে from / .bashrc এর পরিবর্তে ফাইল থেকে আদেশগুলি পড়তে এবং সম্পাদন করতে বাধ্য করবে।

টার্মিনালটি bashলগইন শেল হিসাবে শুরু হওয়ার সাথে wসাথে ( bashদৃষ্টান্তগুলি সম্পাদিত হয় তা চালানোর জন্য চালানো -bash) .bashrcকখনই স্বয়ংক্রিয়ভাবে পড়া হয় না।


সুতরাং মুল বক্তব্যটি হ'ল ম্যাক ওএস এক্স-এর টার্মিনা অ্যাপটি কি সর্বদা বাশের "লগইন" দৃষ্টান্ত তৈরি করে? কেন? আপনি যদি সত্যিই লগইন না করেন। (আপনি এর আগে জিইউআই থেকে লগইন করেছেন)
পল ব্রেভজিনস্কি

অন্যান্য ইউনিক্স সিস্টেমগুলি কেন ~ / .bashrc পড়বে?
পল ব্রুউকজিনস্কি

3
অ্যাপলের দ্বারা গৃহীত ডিজাইনের সিদ্ধান্তগুলি এখানে ব্যাখ্যা করার মতো কোনও অবস্থানে নেই। আমি সহজেই উভয় পক্ষকে তর্ক করতে পারি তবে এটি কোনওরকম কাজে আসে না। সুতরাং এটি কেবল মেনে নিন কারণ এটি সম্ভবত সেরা বিকল্প
নোহিলসাইড

ঠিক আছে এটি প্রথমবার আপনি শেলটি চালান হিসাবে এটি আপনার লগইন, এক্স 11 ভিত্তিক ইউনিসে আপনি শেলটি চালিয়ে শুরু করেন যা এক্স চালায় তাই এটি লগইন নয়
ব্যবহারকারী 151019

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