खरोंच से
लिनक्स है इस function in /etc/profile
# 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
स्रोत
2017-11-07 13:57:55
जहां आप इसे 6 बार परिभाषित किया है? किस फाइल में? – hovanessyan
संभावित डुप्लिकेट [बैश में $ PATH चर से पथ को हटाने का सबसे शानदार तरीका क्या है?] (Http://stackoverflow.com/questions/370047/what-is-the-most-elegant-way-to -remove-a-path-from-the-path-variable-in-bash) –