আমি এমন একটি স্ক্রিপ্ট ব্যবহার করি (যার কাছে আমার কাছে লেখার অ্যাক্সেস নেই) যা পরিবেশ স্থাপনের জন্য একটি গোছার উপাধি তৈরি করে। আমি আমার পরিবেশ সেটআপ করার জন্য একটি বাশ ফাংশন তৈরি করতে চাই, তবে মনে হয় যে আলিয়াসগুলি ফাংশন বডিটিতে বেঁচে নেই।
এখানে একটি ন্যূনতম উদাহরণ:
# aliases.sh
alias fooAlias='echo "this will never work!"'
।
# .bashrc
function setupLotsOfThings() {
source aliases.sh
fooAlias
}
।
এখন, যদি আমি কেবল aliases.sh
ইন্টারেক্টিভভাবে উত্স করি তবে জিনিসগুলি প্রত্যাশা অনুযায়ী কাজ করে:
[mycomputer]~/ $ source aliases.sh
[mycomputer]~/ $ fooAlias
this will never work!
যাইহোক, আমি যদি পরিবর্তে আমার .bashrc- এ সংজ্ঞায়িত ফাংশনটি কল করি, তবে এটির সংজ্ঞাটি উত্সাহ দেওয়ার পরে এটির নামটি সনাক্ত করতে পারে না:
[mycomputer]~/ $ setupLotsOfThings
-bash: fooAlias: command not found
এখানে কি হচ্ছে? alias
কোনও ফাংশনে ব্যবহার করার সময় কমান্ডের সুযোগ সম্পর্কে আমি কী অনুপস্থিত রয়েছি ?
সম্পাদনা করুন: আমি কী অর্জন করতে চাইছি তাতে কিছুটা আলোকিত করতে আমি সর্বনিম্ন উদাহরণের বাইরে কিছু বিশদ যুক্ত করব।
আমার কাজের জন্য আমি একটি ক্লাস্টার এবং / বা গ্রিডে প্রচুর সফ্টওয়্যার বিকাশ এবং পরিচালনা করি। আমার বেশ কয়েকটি প্রকল্প রয়েছে যার জন্য সম্পূর্ণ ভিন্ন পরিবেশের প্রয়োজন যেমন বিভিন্ন জিসিসি সংস্করণ, নির্দিষ্ট সফ্টওয়্যার রিলিজ, কনফিগারেশন এবং ডেটা PATHs এবং বিভিন্ন পরিবেশের ভেরিয়েবল। প্রশাসকরা বিভিন্ন জিনিস সেট আপ করার জন্য স্ক্রিপ্টগুলি সরবরাহ করে, সাধারণত শেল ফাংশন বা উপকরণগুলি সংজ্ঞায়িত করে যা অন্যান্য ফাংশন বা উপাধি বা বিভিন্ন স্ক্রিপ্ট চালায়। আমার কাছে এটি একটি কালো বাক্স।
আমি একক কমান্ড দিয়ে আমার নিজস্ব বিভিন্ন পরিবেশ নির্ধারণ করতে চাই। বর্তমানে, আমি এর মতো কিছু করি:
[mycomputer]~/ $ source /some/environment/setup/script.sh
[mycomputer]~/ $ aliasToSetupSomeSoftwareVersion #this was defined in the above
[mycomputer]~/ $ anotherAliasForOtherSoftware
[mycomputer]~/ $ source /maybe/theres/another/script.sh
[mycomputer]~/ $ runSomeOtherSetup # this was defined in the new script
এই কমান্ডগুলি সাধারণত চালানো হয়। আমার ধারণাটি মূলত কেবল উপরের রেখাগুলি একটি ফাংশন ব্লকে অনুলিপি করা ছিল, তবে মূল উদাহরণটি দেখায় যে এটি কেবল কাজ করে না। বিকল্প workaround স্বাগত চেয়ে বেশি!