দেখে মনে হচ্ছে যে আপনার সিস্টেমে শেলের সাধারণ অনুরোধটি সংজ্ঞায়িত উপনাম (বা ফাংশন) এর উত্তরাধিকারী হয় না module, সুতরাং শেলটি এটি সন্ধান করতে সক্ষম হয় না (উদ্ধৃতি সহ নোটের নীচে দেখুন)। এটি কীভাবে বর্তমানে সংজ্ঞায়িত হয়েছে তা type moduleদেখতে প্রম্পট থেকে চেষ্টা করুন module।
মূলত উত্স সহ আপনি যদি কীবোর্ড থেকে স্ক্রিপ্টের প্রতিটি লাইন লিখেন।
নোট করুন যে আপনি একদিকে বর্তমান শেলের সমস্ত নির্দিষ্ট ইতিহাস উত্তরাধিকার সূত্রে পেয়েছেন তবে অন্যদিকে বর্তমান শেলটি আপনার স্ক্রিপ্ট এবং moduleঅনুরোধের সমস্ত পক্ষের প্রভাবের অধীনে থাকবে ।
কোনও স্ক্রিপ্ট উত্স করতে এবং এটি সম্পাদনের মধ্যে পার্থক্য সম্পর্কে আপনি সুপার ইউজার সেপ্টেম্বর ২০০৯ বা ডিসেম্বর ২০০৯ , উবুন্টু ফেব্রুয়ারী ২০১১ , ইউনিক্স আগস্ট ২০১১ , স্ট্যাকওভারফ্লো ডিসেম্বর ২০১২ বা অন্য অনেক জায়গায় পড়তে পারেন ।
মডিউলফাইল বিভাগে এই বিষয়ে একটি সতর্কতা রয়েছে :
... একটি মডিউল ফাইল আনলোড করার সময় পরিবেশের ভেরিয়েবলগুলি আনসেট করা হয়। সুতরাং, একটি মডিউলফাইল লোড করা সম্ভব এবং তারপরে পরিবেশের ভেরিয়েবলগুলি তাদের পূর্বের অবস্থায় ফিরে না পেয়ে এটি আনলোড করা সম্ভব ।
সুতরাং এটি কোনও স্ক্রিপ্টে চালানো আরও বুদ্ধিমান বলে মনে হচ্ছে ।
দ্বিতীয়টি সম্পাদন করতে আমি ভাবতে পারি:
একটি ইন্টারেক্টিভ শেল ব্যবহার করতে , বর্তমান শেলের নির্দিষ্ট ইতিহাস অবহেলা করে , আপনার স্ক্রিপ্টের শেবাং এর সাহায্যে
#!/bin/bash -i
একটি ইন্টারেক্টিভ শেল টিটিটিতে ব্যবহারকারী ইনপুট থেকে কমান্ডগুলি পড়ে reads অন্যান্য জিনিসের মধ্যে, এই জাতীয় শেল অ্যাক্টিভেশনে স্টার্টআপ ফাইলগুলি পড়ে, একটি প্রম্পট প্রদর্শন করে এবং ডিফল্টরূপে কাজ নিয়ন্ত্রণ সক্ষম করে ...
পরিবর্তে আপনি যদি বর্তমান শেলের নির্দিষ্ট গল্পটি উত্তরাধিকার সূত্রে পছন্দ করেন তবে আপনি এটি উত্স দেওয়ার চেষ্টা করতে পারেন ... তবে একটি সাব- শেলের মাধ্যমে
( source runit.sh )
এর moduleসাথে type moduleতার বর্তমান নাম / ফাংশন সন্ধান করার চেষ্টা করুন যার ফলস্বরূপ আপনার স্ক্রিপ্টটি সংশোধন করুন। নোট করুন কিছু পরিবেশের পরিবর্তনশীল এর জন্য সেট করা যাবে না module।
আপনি যদি চান তবে আপনি ডিরেক্টরিতে সূচনা স্ক্রিপ্টগুলি খুঁজে পেতে পারেন $MODULESHOME/init/<shell>।
মন্তব্য মডিউল প্রশ্নোত্তর
হিসাবে মনে আছে
একটি শিশু প্রক্রিয়া (স্ক্রিপ্ট) পিতামাতার প্রক্রিয়া পরিবেশ পরিবর্তন করতে পারে না। স্ক্রিপ্টের একটি মডিউল লোড কেবল স্ক্রিপ্টের জন্য পরিবেশকে প্রভাবিত করে। স্ক্রিপ্টটি বর্তমান পরিবেশ পরিবর্তন করার একমাত্র উপায় হ'ল স্ক্রিপ্টটি উত্স করা যা এটি বর্তমান প্রক্রিয়াতে পড়ে।
সুতরাং আপনি যদি বর্তমান পরিবেশটি সংশোধন করতে এড়াতে চান তবে আমি মনে করি শেবাং (1) পরিবর্তন করার চেষ্টা করা ভাল বা স্ক্রিপ্টটিকে একটি সাব-শেল (2) এ উত্সাহিত করা ভাল। আমি মামলার ব্যবহারযোগ্যতা সম্পর্কে পুরোপুরি নিশ্চিত নই (3)।
দ্রষ্টব্য মডিউলগুলির
ম্যানুয়াল এবং বিবরণ পৃষ্ঠাগুলি থেকে উদ্ধৃত অংশ
moduleমডিউল প্যাকেজের একটি ব্যবহারকারী ইন্টারফেস। moduleওরফে বা ফাংশন executes modulecmdপ্রোগ্রাম এবং শেল কমান্ড এর আউটপুট মূল্যায়ন হয়েছে। modulecmdশেলের ধরণ নির্দিষ্ট করার জন্য প্রথম যুক্তি ।
শেল-নির্দিষ্ট সূচনা স্ক্রিপ্টটি শেলের মধ্যে উত্সাহিত করা হলে মডিউল প্যাকেজ এবং moduleকমান্ডটি আরম্ভ করা হয় । স্ক্রিপ্টটি মডিউল কমান্ড তৈরি করে, হয় একটি উপাধি বা শেল ফাংশন হিসাবে, মডিউলগুলির পরিবেশ পরিবর্তনশীল তৈরি করে creates