readonly

readonly

标记shell变量或函数为只读

语法

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

主要用途

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

选项

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

参数

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

返回值

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

例子

# 定义变量并增加只读属性
readonly var1=13 var2
readonly -a arr1=(1 2 3 4 5) arr2=('z' 'x' 'c')
# 必须有 '-A' 选项
readonly -A dict1=(['key1']='value1')
# 先定义变量、函数,然后再为它们添加只读属性
max=3
readonly max

# 数组定义时可以不加 declare -a
seasons=('spring' 'summer' 'autumn' 'winter')
# 为数组添加只读属性时可以不加 -a 选项
readonly seasons

declare -A man=(['age']=23 ['height']='190cm')
# 为关联数组添加只读属性时可以不加 -A 选项
readonly man

function foo(){ echo 'bar'; }
# 为函数添加只读属性时必须加 -f 选项
readonly -f foo
# 显示全部只读变量,以下两个命令的显示结果一样
readonly
readonly -p
# 显示全部拥有只读属性的数组
readonly -a
# 显示全部拥有只读属性的关联数组
readonly -A
# 显示全部拥有只读属性的函数
readonly -f

常见错误

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

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

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

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

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

注意

  1. 该命令是bash内建命令,相关的帮助信息请查看help命令。
  2. declare +r不能去除只读属性, unset不能删除只读变量。

若文章对你有帮助,可以点赞或打赏支持我们。发布者:Aurora,转载请注明出处:http://61.174.243.28:13541/AY-knowledg-hub/readonly/

(0)
AuroraAurora站点维系者
上一篇 2024年 3月 1日 下午5:02
下一篇 2024年 3月 1日 下午5:18

相关推荐

  • atrm

    文章目录atrm补充说明语法选项参数实例 atrm 删除待执行任务队列中的指定任务 补充说明 atrm命令 用于删除待执行任务队列中的指定任务。 语法 atrm(选项)(参数) 选…

    入门教程 2023年 12月 6日
  • fdisk

    文章目录fdisk补充说明语法选项参数实例 fdisk 查看磁盘使用情况和磁盘分区 补充说明 fdisk命令 用于观察硬盘实体使用情况,也可对硬盘分区。它采用传统的问答式界面,而非…

    入门教程 2023年 12月 14日
  • tailf

    文章目录tailf补充说明语法选项参数实例 tailf 在屏幕上显示指定文件的末尾若干行内容,通常用于日志文件的跟踪输出 补充说明 tailf命令几乎等同于tail -f,严格说来…

    入门教程 2024年 3月 11日
  • tac

    文章目录tac概要主要用途参数选项返回值例子注意 tac 连接多个文件并以行为单位反向打印到标准输出。 概要 tac [OPTION]… [FILE]… 主要用途 按行为单…

    入门教程 2024年 3月 11日
  • man

    文章目录man补充说明语法选项参数数字代表内容实例相关命令 man 查看Linux中的指令帮助 补充说明 man命令 是Linux下的帮助指令,通过man指令可以查看Linux中的…

    入门教程 2024年 1月 3日
  • ppp-off

    文章目录ppp-off补充说明语法 ppp-off 关闭ppp连线 补充说明 这是Slackware发行版内附的程序,让用户切断PPP的网络连线。 语法 ppp-off

    入门教程 2024年 3月 1日
  • docker

    文章目录docker补充说明安装语法选项参数实例官网 docker 容器化技术,可以将应用程序及其依赖项打包到一个可移植的容器中,使其可以在不同的环境中运行 补充说明 Docker…

    入门教程 2023年 12月 7日
  • C++ 数据类型

    使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当您创建一个变量时,就会在内存中保留一些空间。 您可能需要存储各种数据类型(比…

    2024年 3月 18日
  • tmux

    文章目录tmux补充说明功能安装快捷键使用说明系统操作窗口操作面板操作参考资料 tmux Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用B…

    入门教程 2024年 3月 11日
  • Java 变量类型

    在Java语言中,所有的变量在使用前必须声明。声明变量的基本格式如下: type identifier [ = value][, identifier [= value] …]…

    入门教程 2023年 3月 4日

发表回复

登录后才能评论
Translate »