Anda dapat mendeklarasikan f
sebagai fungsi hanya baca menggunakan readonly -f f
atau declare -g -r -f f
( readonly
setara dengan declare -g -r
). Ini adalah -f
opsi untuk utilitas bawaan ini yang membuat mereka bertindak f
sebagai 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 errexit
opsi shell ( set -e
). Chet, sang bash
pengelola, mengatakan bahwa ini adalah kekhilafan dan bahwa itu akan diubah dengan rilis berikutnya.
typeset -r
:typeset -rf f
.