/ উত্স। /। প্রোফাইল ফাইলটি পুনরায় লোড করার চেষ্টা করার সময় বেশ কয়েকটি সমস্যা দেখা দেয়। [এটি উবুন্টু লিনাক্সকে বোঝায় - কিছু ক্ষেত্রে আদেশের বিবরণ পৃথক হবে]
- আপনি কি এটি সরাসরি টার্মিনালে বা কোনও স্ক্রিপ্টে চালাচ্ছেন?
- কীভাবে আপনি এটি কোনও স্ক্রিপ্টে চালাবেন?
বিজ্ঞাপন. 1)
এটি সরাসরি টার্মিনালে চালানোর অর্থ এখানে কোনও সাব-শেল তৈরি হবে না। সুতরাং আপনি দুটি কমান্ড ব্যবহার করতে পারেন:
source ~/.bash_profile
অথবা
. ~/.bash_profile
উভয় ক্ষেত্রেই। প্রোফাইল ফাইলের সামগ্রীর সাথে পরিবেশ আপডেট হবে update
বিজ্ঞাপন 2) আপনি কল করে যে কোনও বাশ স্ক্রিপ্ট শুরু করতে পারেন
sh myscript.sh
অথবা
. myscript.sh
প্রথম ক্ষেত্রে এটি একটি সাবশেল তৈরি করবে যা আপনার সিস্টেমের পরিবেশের ভেরিয়েবলগুলিকে প্রভাবিত করবে না এবং তারা কেবল সাব-শেল প্রক্রিয়াতেই দৃশ্যমান হবে। সাবশেল কমান্ড শেষ করার পরে রপ্তানি ইত্যাদির কোনওটিই প্রয়োগ করা হবে না। এটি একটি প্রচলিত ত্রুটি এবং প্রচুর সময় হারাতে অনেক ডেভলপারদের কারণ দেয়।
আপনার পরিবর্তনগুলি আপনার স্ক্রিপ্টে প্রয়োগ করার জন্য বিশ্ব পরিবেশের জন্য প্রভাব ফেলতে স্ক্রিপ্টটি চালিত করতে হবে
.myscript.sh
কমান্ড।
আপনার স্ক্রিপ্টটি সাবসেলে চালিত হচ্ছে না তা নিশ্চিত করার জন্য আপনি এই ফাংশনটি ব্যবহার করতে পারেন। (আবার উদাহরণ উবুন্টু শেলের জন্য)
#/bin/bash
preventSubshell(){
if [[ $_ != $0 ]]
then
echo "Script is being sourced"
else
echo "Script is a subshell - please run the script by invoking . script.sh command";
exit 1;
fi
}
আমি আশা করি এটি কিছু সাধারণ ভুল বোঝাবুঝি পরিষ্কার করে দেয়! : ডি গুড লাক!