在Shell中,如果一个变量的值赋值后不想再更改,可以使用readonly将其定义为只读,该变量将不能被重新赋值或删除。readonly也可以将数组或函数定义为只读。
用于定义只读Shell变量和只读Shell函数。
readonly [option] variable
-f 定义只读函数 -a 定义只读数组变量 -p 列出Shell中已定义的所有只读变量(等于没有参数的readonly)
下面的例子显示只读变量的特征:
[peter@ibi98 shell]$ a=protein #定义并赋值变量a [peter@ibi98 shell]$ a=cds #重新赋值 [peter@ibi98 shell]$ readonly a #定义变量a为只读变量 [peter@ibi98 shell]$ a=protein #不能重新赋值 bash: a: 只读变量 [peter@ibi98 shell]$ unset a #也不能删除该变量 bash: unset: a: 无法反设定: 只读 variable
只读变量直到所在脚本或Shell退出才会失效。