Saya menggunakan satu set fungsi kenyamanan untuk menambahkan atau menambahkan path ke variabel. Fungsi datang dalam tarball distribusi untuk Bash dalam file contrib yang disebut "pathfuncs".
- add_path akan menambahkan entri ke akhir variabel PATH
- pre_path akan menambahkan entri ke awal variabel PATH
- del_path akan menghapus entri dari variabel PATH, di mana pun itu
Jika Anda menentukan variabel sebagai argumen kedua, ia akan menggunakannya sebagai ganti PATH.
Untuk kenyamanan, inilah mereka:
# 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;:\$;;"`
}
Jika Anda menambahkannya ke file startup bash Anda, Anda dapat menambahkan ke PATH Anda seperti ini:
pre_path $HOME/bin
add_path /sbin
add_path /usr/sbin
Atau tentukan variabel yang berbeda:
pre_path $HOME/man MANPATH
pre_path $HOME/share/man MANPATH
add_path /usr/local/man MANPATH
add_path /usr/share/man MANPATH
Saya menggunakan metode ini dalam file rc saya dengan menempatkan pre_paths pertama dan add_paths kedua. Itu membuat semua perubahan jalur saya mudah dimengerti sekilas. Manfaat lain adalah bahwa garis-garisnya cukup pendek sehingga saya dapat menambahkan komentar tambahan pada sebuah baris jika perlu.
Dan karena ini adalah fungsi, Anda dapat menggunakannya secara interaktif dari baris perintah, seperti dengan mengatakan add_path $(pwd)
untuk menambahkan direktori saat ini ke path.
PATH=foo:$PATH
tampaknya salah karena terus tumbuh setiap saatsource ~/.bashrc
dan bahkanexec bash
tidak dapat membantu sejak$PATH
ituexport
.