ব্যাশ টার্মিনাল শুরু করার পরে, আমি লক্ষ করেছি যে PATH ভেরিয়েবলটিতে নকল এন্ট্রি রয়েছে। আমার টার্মিনালটি একটি লগইন শেল শুরু করে , তাই ~/.bash_profileউত্সাহিত হয়, এরপরে ~/.profileএবং পরে ~/.bashrc। ~/.profileআমি কেবল সেই পথে প্রবেশের প্রবেশগুলি তৈরি করি যা সদৃশ are
পেডেন্টিক হওয়ার জন্য, এই ক্রমটি যাতে সেই ফাইলগুলিকে সস করা উচিত তা হ'ল:
Sourced /etc/profile
Sourced /etc/bash.bashrc
Sourced .bash_profile
Sourced .profile
Sourced .bashrc
"PATH ভেরিয়েবলের ডুপ্লিকেট রয়েছে" এর সদৃশ হিসাবে এটি চিহ্নিত করার আগে, পড়া চালিয়ে যান।
প্রথমে আমি ভেবেছিলাম যে এটি ~/.profileদু'বার সস হওয়ার সাথে সাথে করা উচিত , সুতরাং যখনই এটি উত্সাহিত হয়েছিল তখন আমার কাছে একটি লগ ফাইলটিতে লেখা ছিল, এবং আশ্চর্যরকমভাবে এটি কেবল একটি এন্ট্রি লগ করেছিল, যা আমাকে বলে যে এটি একবারে উত্সাহিত হয়েছিল। আরও আশ্চর্যের বিষয়টি হ'ল আমি যখন প্রবেশ করা মন্তব্যগুলিতে মন্তব্য করি তখন ~/.profileএন্ট্রিগুলি PATHভেরিয়েবলের মধ্যে উপস্থিত থাকে । এটি আমাকে তিনটি সিদ্ধান্তে নিয়ে গেছে, যার মধ্যে একটি দ্রুত বাতিল হয়েছিল:
- বাশ বৈধ বাশ মন্তব্য উপেক্ষা করে এবং এখনও মন্তব্য করা কোডটি কার্যকর করে
- এখানে একটি স্ক্রিপ্ট রয়েছে যা
~/.profileকোনও আউটপুট মুদ্রণ করে এমন কোনও কোড উপেক্ষা করে এবং উপেক্ষা করে (উদাহরণস্বরূপ লগ ফাইল) - আমার অন্য একটি অনুলিপি
~/.profileযা অন্যত্র সস করা হচ্ছে
প্রথমটি, আমি দ্রুত সিদ্ধান্ত নিয়েছি কিছু দ্রুত পরীক্ষার কারণে কেসটি না হয়। দ্বিতীয় এবং তৃতীয় বিকল্পগুলি যেখানে আমার সাহায্য দরকার।
আমার টার্মিনাল শুরু হওয়ার সাথে সাথে আমি কীভাবে স্ক্রিপ্টগুলির লগ সংগ্রহ করব? আমি echoফাইলগুলিতে ব্যাশ দ্বারা উত্সাহিত কিনা তা জানতে পরীক্ষা করেছিলাম, তবে টার্মিনালটি টাইপ করার জন্য টার্মিনাল প্রস্তুত হওয়ার জন্য আমার একটি নির্ধারিত পদ্ধতি আবিষ্কার করতে হবে যা কার্যকরভাবে চিহ্নিত করতে পারে।
যদি উপরেরটি সম্ভব না হয়, তবে যে কেউ স্ক্রিপ্টগুলি চালিত হচ্ছে তা দেখার জন্য আমি অন্য কোথাও পরামর্শ দিতে পারি ।
ভবিষ্যতে উল্লেখের
আমি এখন আমার পথে যোগ করার জন্য এই স্ক্রিপ্টটি ব্যবহার করছি:
function add_to_path() {
for path in ${2//:/ }; do
if ! [[ "${!1}" =~ "${path%/}" ]]; then # ignore last /
new_path="$path:${!1#:}"
export "$1"="${new_path%:}" # remove trailing :
fi
done
}
আমি এটি এর মতো ব্যবহার করি:
add_to_path 'PATH' "/some/path/bin"
স্ক্রিপ্টটি পরীক্ষা করার আগে পথটি ইতিমধ্যে চলকটিতে বিদ্যমান কিনা তা পরীক্ষা করে।
Zsh ব্যবহারকারীদের জন্য, আপনি এই সমতুল্য ব্যবহার করতে পারেন:
function add_to_path() {
for p in ${(s.:.)2}; do
if [[ ! "${(P)1}" =~ "${p%/}" ]]; then
new_path="$p:${(P)1#:}"
export "$1"="${new_path%:}"
fi
done
}
28/8/2018 সম্পাদনা করুন
এই স্ক্রিপ্টটির সাথে আমি আরও একটি জিনিস খুঁজে পেতে পারি তা হ'ল পথটি ঠিক করা। সুতরাং আমার .bashrcফাইলের শুরুতে , আমি এই জাতীয় কিছু করি:
_temp_path="$PATH"
PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin'
add_to_path 'PATH' "$_temp_path"
unset _temp_path
এটি কী আপনার PATHসাথে শুরু করা উচিত। PATHসিদ্ধান্ত নেওয়ার জন্য প্রথমে পরীক্ষা করুন ।
~/.profileএবং ~/.bashrcথেকে~/.bash_profile
~/.profileযদি~/.bash_profileকোন অস্তিত্ব নেই ...