টার্মিনাল অ্যাপ্লিকেশন (ম্যাক) পুনরায় চালু না করে টার্মিনাল থেকে বাশ পুনরায় চালু করবেন?


46

আমি এই প্রশ্নের উত্তরের জন্য প্রায় কাছাকাছি চেয়েছিলাম কিন্তু আমি এটি খুঁজে পাই না (যা অদ্ভুত)।

আমার প্রশ্ন হ'ল ম্যাকের টার্মিনাল থেকে বাশ সেশনটি পুনরায় চালু করার কোনও সহজ উপায় আছে কি? আমি ঠিক একই আচরণটি দেখতে চাই যেন আমি টার্মিনাল অ্যাপ্লিকেশনটি বন্ধ করে দিয়ে আবার এটি শুরু করি (সমস্ত ভেরিয়েবল পুনরায় সেট করা, .ব্যাশ_প্রোফাইলে উত্সাহিত ইত্যাদি)।

আমি কীভাবে .bash_ প্রোফাইলে উত্স উত্সব করতে জানি তা কিন্তু আমি চাই তা নয়। আমি এটি করতে চাওয়ার একটি কারণ হ'ল আমার ব্যাশ প্রম্পটের জন্য একটি প্লাগইনে কোড রয়েছে যা একাধিকবার রঙ লোড হতে বাধা দেয়। অতএব, সোর্সিং .বাশ_ প্রোফাইলে রঙ পরিবর্তনশীলগুলি পুনরায় লোড করে না এবং কার্যকরভাবে পরিবর্তন পেতে আমাকে টার্মিনাল অ্যাপ্লিকেশনটি পুনরায় চালু করতে হবে।

উত্তর:


64

exec bash বাশ দিয়ে বর্তমান শেল প্রক্রিয়াটি প্রতিস্থাপন করা উচিত।


2
টার্মিনাল অ্যাপ্লিকেশনটিতে বাশ কি একটি ইন্টারেক্টিভ শেল, এবং exec bashকেবল তখন সেই ইন্টারেক্টিভ শেলটিকে পুনরায় চালু করতে পারে? এছাড়াও, আপনি নির্বাহক কমান্ডটি ঠিক কী ব্যাখ্যা করতে পারে এবং এর অপশনগুলি? ধন্যবাদ!
ম্যাটিয়াস

এক্সিকিউট বর্তমান প্রক্রিয়াটিকে নতুন দিয়ে প্রতিস্থাপন করে। বাশের কাছে খুব লিখিত রয়েছে তবে দুর্ভাগ্যক্রমে ম্যানপেজটি অনুসন্ধান করা শক্ত; টাইপ করুন man bash, শেল বিল্টিন কম্যান্ডস স্ট্রিংয়ের শেষ উদাহরণটি সন্ধান করুন এবং তারপরে এক্সেকিউটে নিচে স্ক্রোল করুন। সংক্ষেপে, -cপতাকাটি কোনও পরিবেশের পরিবর্তনশীল ছাড়াই এটি চালিত হবে (যা আপনার উদ্দেশ্যে প্রয়োজন হতে পারে, আমি জানি না), এবং অন্যান্য যুক্তি-এল এবং -a সম্ভবত আপনি চান এমন জিনিস নয় (এগুলি historicalতিহাসিক বলে মনে হয়) / অস্পষ্ট এবং নির্দিষ্ট বৈশিষ্ট্য)। আপনি যদি কমান্ডটি ছেড়ে দেন তবে আপনি বর্তমান শেলটিতে নতুন ফাইল বর্ণনাকারী খোলার জন্য এক্সেক ব্যবহার করতে পারেন।
মুজার

বর্তমান শেলটিতে নতুন ফাইল বর্ণনাকারী খোলার জন্য কীভাবে এক্সিকিউটিভ ব্যবহার করবেন তার একটি উদাহরণ আপনি প্রদর্শন করতে পারেন? ইন্টারেক্টিভ / লগইন শেল সম্পর্কে আমার প্রশ্ন সম্পর্কে। টার্মিনালে শেলটি একটি ইন্টারেক্টিভ শেল দ্বারা চালিত হয় এবং এটিই সমস্ত নির্বাহী কমান্ড স্পর্শ করে। শেষ অবধি, এই প্রশ্নের অনুমোদিত উত্তরটি -l পতাকা সহ এক্সিকিউটিভ কমান্ডের সুপারিশ করে, তবে আমি এটি বুঝতে পারি না don't এত বেশি জিজ্ঞাসা করার জন্য দুঃখিত, আমি যে কমান্ডগুলি ব্যবহার করি সেগুলি সম্পর্কে আমি কেবল একটি বোঝা চাই।
ম্যাটিয়াস

1
দুঃখিত, হ্যাঁ আমি ম্যাক্স সম্পর্কে নিশ্চিত নই, তবে লিনাক্স বিশ্বে কোনও গ্রাফিকাল টার্মিনাল থেকে চালিত কমপক্ষে শেলগুলি (সাধারণত) লগইন শেল নয় এবং আপনি কেবল ইন্টারেক্টিভ শেলটি পুনরায় চালু করছেন না টার্মিনাল নিজেই বা আপনার লগইন শেলটি। -lএখানে ব্যাশ দেওয়ার পক্ষে একটি যুক্তি রয়েছে এবং এটি একে লগইন শেলের মতো আচরণ করে। বর্তমান শেলটিতে ফাইল বর্ণনাকারী খোলার আপনার প্রশ্নের সাথে কোন সম্পর্ক নেই, তবে আপনি exec 4<>test.txtউদাহরণস্বরূপ ফাইল ডেস্ক্রিপ্টরটিকে 4 পয়েন্ট টেস্ট.টিএসটি তৈরি করতে ব্যবহার করতে পারেন । তারপরে আপনার শেলের বাকি অংশে echo test>&4আপনি টেস্ট.টেক্সট আউটপুট করতে পারবেন।
মুজার

1
@ মুজার যে কারণে আমি সম্পূর্ণরূপে একমত তা বলতে পারি না, ওএসএক্স সিদ্ধান্ত নিয়েছে যে জিইউআই টার্মিনাল এমুলেটরগুলি লগইন শেল চালাবে
টেরডন

1

গৃহীত উত্তরটি শशের জন্য দুর্দান্ত যা ব্যাশ ব্যবহার করছে, যা ওপি জিজ্ঞাসা করেছিল, তবে আমি ম্যাকওএস-এ একটি নন-ডিফল্ট শেল (zsh) দিয়ে টার্মিনালটি ব্যবহার করছি এবং কমান্ড চালানোর ফলে exec bashস্পষ্টতই কাঙ্ক্ষিত প্রভাব পড়বে না : এটি আমার ডিফল্ট শেলের পরিবর্তে ব্যাশ চালু করে।

সুতরাং এনভায়রনমেন্ট-অজোনস্টিক কমান্ডটি exec $SHELLহ'ল পরিবেশের পরিবর্তনশীলকে ব্যবহার করে যা $SHELLব্যবহারকারীর জন্য ডিফল্ট শেল সংরক্ষণ করে।

এছাড়াও, নোট করুন যে অ্যাপল বাশকে ম্যাকোস ক্যাটালিনায় জেডএসের সাথে প্রতিস্থাপন করবে যাতে ওপিতে যেভাবে চলমান তা খুঁজে পেতে পারে exec zshবা exec $SHELLম্যাকোস 10.15 এ আপডেট করার পরে যাওয়ার উপায় হবে be

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