readonly [-aAf] [name[=value] ...] or readonly -p
-A 表示后面的name变量都是关联数组
-a 表示后面的name变量都是index数组
-f 表示后面的name都是函数
不带任何name,或者-p,打印所有只读name,包括变量、函数。
-aA 同时出现,-A优先。
如果-aAf 和名字不一致,会返回非0。
name后带value和不带value的区别是,带value表示在定义时就声明只读;不带value表示先定义后,后声明。对变量声明,既可以在定义变量时声明,也可以在变量定义后再声明。
对于函数,只能先定义后声明。
取消只读????
help readonly
readonly: readonly [-aAf] [name[=value] ...] or readonly -p
Mark shell variables as unchangeable. Mark each NAME as read-only; the values of these NAMEs may not be
changed by subsequent assignment. If VALUE is supplied, assign VALUE
before marking as read-only. Options:
-a refer to indexed array variables
-A refer to associative array variables
-f refer to shell functions
-p display a list of all readonly variables and functions An argument of `--' disables further option processing. Exit Status:
Returns success unless an invalid option is given or NAME is invalid.
例子
# 声明只读变量。
readonly var=value # 声明只读数组
readonly -a array=(val1 val2 val3)
# 声明只读函数
readonly -f f1