.bashrchanya dibaca oleh cangkang interaktif. (Sebenarnya, itu penyederhanaan berlebihan: bash unik dalam hal ini. Bash tidak membaca .bashrcapakah itu shell login, interaktif atau tidak. Dan ada pengecualian bahkan untuk pengecualian: jika proses induk bash adalah rshdatau sshd, maka bash membaca .bashrc, apakah itu interaktif atau tidak.)
Letakkan definisi fungsi Anda dalam file di tempat yang diketahui, dan gunakan builtin .(juga dieja source) untuk memasukkan file itu dalam skrip.
$ cat ~/lib/bash/my_functions.bash
foo () {
…
$ cat ~/bin/myscript
#!/bin/bash
. ~/lib/bash/my_functions.bash
foo bar
Jika mau, Anda dapat mengikuti fitur pengisian otomatis ksh. Masukkan setiap definisi fungsi dalam file dengan nama yang sama dengan fungsi. Daftar direktori yang berisi definisi fungsi dalam FPATHvariabel (daftar direktori yang dipisahkan oleh titik dua). Berikut ini perkiraan kasar dari ksh autoloadyang sebenarnya memuat fungsi segera alih-alih sesuai permintaan:
autoload () {
set -- "$(set +f; IFS=:;
for d in $FPATH; do
if [ -r "$d/$1" ]; then echo -E "$d/$1"; break; fi;
done)"
[[ -n $1 ]] && . "$1"
}