Bir değişkene yol hazırlamak veya eklemek için bir takım işlevler kullanıyorum. İşlevler, Bash için dağıtım dizininde "pathfuncs" adlı bir katkı dosyasında gelir.
- add_path, girişi PATH değişkeninin sonuna ekler
- pre_path girdiyi PATH değişkeninin başına ekler
- del_path, girişi olduğu yerde PATH değişkeninden kaldıracak
İkinci değişken olarak bir değişken belirtirseniz, PATH yerine onu kullanır.
Kolaylık sağlamak için işte bunlar:
# is $1 missing from $2 (or PATH) ?
no_path() {
eval "case :\$${2-PATH}: in *:$1:*) return 1;; *) return 0;; esac"
}
# if $1 exists and is not in path, append it
add_path () {
[ -d ${1:-.} ] && no_path $* && eval ${2:-PATH}="\$${2:-PATH}:$1"
}
# if $1 exists and is not in path, prepend it
pre_path () {
[ -d ${1:-.} ] && no_path $* && eval ${2:-PATH}="$1:\$${2:-PATH}"
}
# if $1 is in path, remove it
del_path () {
no_path $* || eval ${2:-PATH}=`eval echo :'$'${2:-PATH}: |
sed -e "s;:$1:;:;g" -e "s;^:;;" -e "s;:\$;;"`
}
Bunları bash başlangıç dosyanıza eklerseniz, PATH'inize şöyle ekleyebilirsiniz:
pre_path $HOME/bin
add_path /sbin
add_path /usr/sbin
Veya farklı bir değişken belirtin:
pre_path $HOME/man MANPATH
pre_path $HOME/share/man MANPATH
add_path /usr/local/man MANPATH
add_path /usr/share/man MANPATH
Bu dosyayı, pre_paths'ı ve add_pathssini ikinci koyarak rc dosyalarımda kullanırım. Bu, tüm yol değişikliklerimin bir bakışta anlaşılmasını kolaylaştırıyor. Diğer bir yararı, satırların yeterince kısa olması ve hatta gerekirse bir satıra bir yorum ekleyebileceğim.
Bunlar işlev olduklarından, komut satırından etkileşimli olarak kullanabilirsiniz, örneğin add_path $(pwd)
geçerli dizini yola eklemek gibi .
PATH=foo:$PATH
bu büyüme her zaman tutmak çünkü yanlış görünüyorsource ~/.bashrc
ve hattaexec bash
yardım beri olamaz$PATH
olduğuexport
.