লিনাক্স: $ PATH ভেরিয়েবল থেকে অপ্রয়োজনীয় পাথগুলি সরান
লিনাক্স থেকে স্ক্র্যাচের / ইত্যাদি / প্রোফাইলে এই ফাংশন রয়েছে
# Functions to help us manage paths. Second argument is the name of the
# path variable to be modified (default: PATH)
pathremove () {
local IFS=':'
local NEWPATH
local DIR
local PATHVARIABLE=${2:-PATH}
for DIR in ${!PATHVARIABLE} ; do
if [ "$DIR" != "$1" ] ; then
NEWPATH=${NEWPATH:+$NEWPATH:}$DIR
fi
done
export $PATHVARIABLE="$NEWPATH"
}
পথটিতে যুক্ত করার জন্য এটি এই ক্রিয়াকলাপগুলির সাথে ব্যবহারের উদ্দেশ্যে, যাতে আপনি এটি অপ্রয়োজনীয়ভাবে না করেন:
pathprepend () {
pathremove $1 $2
local PATHVARIABLE=${2:-PATH}
export $PATHVARIABLE="$1${!PATHVARIABLE:+:${!PATHVARIABLE}}"
}
pathappend () {
pathremove $1 $2
local PATHVARIABLE=${2:-PATH}
export $PATHVARIABLE="${!PATHVARIABLE:+${!PATHVARIABLE}:}$1"
}
সরল ব্যবহার হ'ল pathremoveসরিয়ে দেওয়ার জন্য কেবল ডিরেক্টরি পাথ দেওয়া - তবে মনে রাখবেন যে এটির সাথে ঠিক মিল থাকতে হবে:
$ pathremove /home/username/anaconda3/bin
এটি আপনার ডিরেক্টরি থেকে ডিরেক্টরিটির প্রতিটি উদাহরণ সরিয়ে ফেলবে।
আপনি যদি আপনার পথে ডিরেক্টরিটি চান তবে অপ্রয়োজনীয় ছাড়াই আপনি কেবলমাত্র অন্য একটি ফাংশন ব্যবহার করতে পারেন, যেমন - আপনার নির্দিষ্ট ক্ষেত্রে:
$ pathprepend /usr/local/sbin
$ pathappend /usr/local/bin
$ pathappend /usr/sbin
$ pathappend /usr/bin
$ pathappend /sbin
$ pathappend /bin
$ pathappend /usr/games
তবে, যদি না পঠনযোগ্যতা উদ্বেগ না হয় তবে এই মুহুর্তে আপনি কেবল করণ করা থেকে ভাল:
$ export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
উপরের কাজটি মানুষের জানা সমস্ত শেলগুলিতে কাজ করবে?
আমি কাজ করতে করতে উপরে অনুমান হবে sh, dashএবং bashঅন্তত। আমি এতে অবাক হব যে এটি কাজ করে না csh,fish', or তাই। আমি সন্দেহ করি এটি উইন্ডোজ কমান্ড শেল বা পাওয়ারশেল-এ কাজ করবে।
যদি আপনার পাইথন থাকে তবে নিম্নলিখিত ধরণের কমান্ডটি সরাসরি জিজ্ঞাসা করা উচিত (যা অপ্রয়োজনীয় পথ সরিয়ে ফেলুন):
$ PATH=$( python -c "
import os
path = os.environ['PATH'].split(':')
print(':'.join(sorted(set(path), key=path.index)))
" )
একটি ওয়ান-লাইনার (মাল্টলাইন ইস্যুগুলির পক্ষে)
$ PATH=$( python -c "import os; path = os.environ['PATH'].split(':'); print(':'.join(sorted(set(path), key=path.index)))" )
উপরেরগুলি পরে অপ্রয়োজনীয় পথগুলি সরিয়ে দেয়। পূর্ববর্তী অপ্রয়োজনীয় পাথগুলি সরাতে, বিপরীত তালিকার সূচকটি ব্যবহার করুন এবং এটিকে আবার বিপরীত করুন:
$ PATH=$( python -c "
import os
path = os.environ['PATH'].split(':')[::-1]
print(':'.join(sorted(set(path), key=path.index, reverse=True)))
" )