Linux命令完全指南

Linux readonly命令使用详解

Shell readonly命令 用于定义只读shell变量和shell函数。readonly命令的选项-p可以输出显示系统中所有定义的只读变量。

语法

1
2
readonly [-aAf] [name[=value] ...]
readonly -p

选项

1
2
3
4
5
-a:指向数组。
-A:指向关联数组。
-f:指向函数。
-p:显示全部只读变量。
--:在它之后的选项无效。

参数

1
2
name(可选):变量名或函数名
value(可选):变量的值

返回值

readonly返回true除非你提供了非法选项或非法名称。

主要用法

  • 定义一到多个变量并设置只读属性。
  • 为已定义的一到多个变量设置只读属性。
  • 显示全部包含只读属性的变量。
  • 为已定义的一到多个函数设置只读属性。
  • 显示全部包含只读属性的函数。

实例

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

1
2
3
4
5
6
[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”,输入如下命令:

1
[root@localhost ~]# readonly test='ok'  #定义只读变量并初始化

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

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

当用户试图修改只读变量的值时,会被提示该变量为只读变量。