Linux từ đầu có này 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"
}
này được thiết kế để được sử dụng với các chức năng này cho thêm vào con đường, do đó bạn không làm điều đó dư thừa:
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"
}
Simple sử dụng chỉ để cung cấp cho pathremove
đường dẫn thư mục cần xóa - nhưng hãy nhớ rằng nó phải khớp chính xác:
$ pathremove /home/username/anaconda3/bin
Điều này sẽ xóa từng trường hợp của thư mục đó khỏi đường dẫn của bạn.
Nếu bạn muốn thư mục trong đường dẫn của mình, nhưng không có dư thừa, bạn chỉ có thể sử dụng một trong các chức năng khác, ví dụ: - đối với trường hợp cụ thể của bạn:
$ pathprepend /usr/local/sbin
$ pathappend /usr/local/bin
$ pathappend /usr/sbin
$ pathappend /usr/bin
$ pathappend /sbin
$ pathappend /bin
$ pathappend /usr/games
Nhưng, trừ khi khả năng đọc là mối quan tâm, vào thời điểm này bạn nên chỉ thực hiện:
$ export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Nguồn
2017-11-07 13:57:55
nơi bạn đã định nghĩa nó 6 lần? trong đó các tập tin? – hovanessyan
có thể trùng lặp của [Cách thanh lịch nhất để xóa đường dẫn khỏi biến $ PATH trong Bash là gì?] (Http://stackoverflow.com/questions/370047/what-is-the-most-elegant-way-to -remove-a-path-from-the-path-biến-in-bash) –