readonly

将变量/函数标记为只读

语法

  readonly [-apf] [name] ... 

选项

  -f   每个名称都指一个shell函数
  -a   每个名称引用一个数组变量
  -p   打印所有只读名称的列表(这是默认值)

后续分配不能更改这些名称的值

`-p’选项使输出以可以重用为输入的格式显示。

返回状态为零,除非提供了无效选项,其中一个名称参数不是有效的shell变量或函数名称,或者`-f’选项提供的名称不是shell函数。

readonly是一个bash内置命令。

例子

使用readonly命令显示系统中所有的已经定义的只读变量,输入如下命令:

[root@localhost ~]# readonly     #显示只读变量
declare -ar BASH_VERSINFO='([0]="3" [1]="2" [2]="25" [3]="1" [4]="release" [5]="i686-redhat-linux-gnu")'
declare -ir EUID="0"
declare -ir PPID="31436"
declare -r SHELLOPTS="braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor"
declare -ir UID="0"

对于只读变量而言,若用户对其值进行修改,则会立即报错。例如,使用该指令定义一个只读变量"test",并且将其值初始化为"ok",输入如下命令

[root@localhost ~]# readonly test='ok' 

那么当用户直接修改该只读变量时,就会被报错,如下所示

[root@localhost ~]# test='my'                 #试图修改只读变量的值
-bash: test: readonly variable

readonly 命令实例:

Linux的Bash命令行(A-Z排序)