লিনাক্স: $ 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)))
" )