Tidak ada yang dibangun menjadi bash. Anda bisa mengatakannya untuk memuat ulang .bashrc
setiap kali itu menampilkan prompt, melalui PROMPT_COMMAND
.
## Create a timestamp file, dated like the .bashrc that was read.
## There is a small race condition: if .bashrc is modified as the shell is
## just starting, before getting to this line, this instance won't detect
## that modification.
bashrc_timestamp_file=~/.bashrc-timestamp-$$
touch -r ~/.bashrc "$bashrc_timestamp_file"
## Remove the timestamp file on exit. The timestamp file will be left
## behind on a crash.
trap 'rm "$bashrc_timestamp_file"' EXIT HUP TERM INT QUIT
maybe_reload_bashrc () {
if [[ ~/.bashrc -nt $bashrc_timestamp_file ]]; then
. ~/.bashrc
fi
}
if [[ $PROMPT_COMMAND != *maybe_reload_bashrc* ]]; then
PROMPT_COMMAND="maybe_reload_bashrc
$PROMPT_COMMAND"
fi
Ini adalah banyak masalah yang diakses oleh file ekstra untuk apa nilainya. Selain itu, ia memberi batasan pada Anda .bashrc
: file harus idempoten, yaitu Anda harus dapat memuatnya lebih dari sekali tanpa efek buruk. Sebagai contoh, dalam potongan di atas, saya berhati-hati untuk menambahkan maybe_reload_bashrc
ke PROMPT_COMMAND
hanya jika tidak sudah ada.