.bashrcyalnızca etkileşimli kabuklar tarafından okunur. Bash okumaz Bash bu açıdan ilginç. (Aslında o bir oversimplification .bashrcinteraktif, bir giriş kabuğu eğer ya da değil Ve bir istisna bile istisna var:. Bash ebeveyni süreci ise rshdveya sshddaha sonra bash okuyacak .bashrc, etkileşimli olsun veya olmasın.)
İşlev tanımlarınızı bilinen bir yere bir dosyaya koyun ve .(aynı zamanda yazıldığını source) yerleşik dosyayı kullanarak bir dosyayı betiğe ekleyin.
$ cat ~/lib/bash/my_functions.bash
foo () {
…
$ cat ~/bin/myscript
#!/bin/bash
. ~/lib/bash/my_functions.bash
foo bar
İsterseniz, ksh'ın otomatik yükleme özelliğini takip edebilirsiniz. Her işlev tanımını işlevle aynı ada sahip bir dosyaya yerleştirin. FPATHDeğişkende işlev tanımlarını içeren dizinleri (iki nokta üst üste işaretli dizin listesi) listeleyin. İşte autoload, isteğe bağlı olarak hemen işlevi yükleyen ksh'ların kaba bir yaklaşımı :
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"
}