Anda dapat mendeklarasikan fsebagai fungsi hanya baca menggunakan readonly -f fatau declare -g -r -f f( readonlysetara dengan declare -g -r). Ini adalah -fopsi untuk utilitas bawaan ini yang membuat mereka bertindak fsebagai nama fungsi, bukan pada variabel f.
$ f(){ echo Hello; }
$ readonly -f f
$ f(){ echo Bye; }
bash: f: readonly function
$ unset -f f
bash: unset: f: cannot unset: readonly function
$ f
Hello
Seperti yang Anda lihat, membuat fungsi read-only tidak hanya melindunginya dari penggantian, tetapi juga melindunginya dari tidak disetel (dihapus sepenuhnya).
Saat ini (per bash-5.0.11), mencoba untuk memodifikasi fungsi read-only tidak akan menghentikan shell jika seseorang menggunakan errexitopsi shell ( set -e). Chet, sang bashpengelola, mengatakan bahwa ini adalah kekhilafan dan bahwa itu akan diubah dengan rilis berikutnya.
typeset -r:typeset -rf f.