LinuxShell命令declare、local、typeset
【注】具体详解参见 help 手册。
1. 简介
Linux Shell 内建命令 declare
用于声明变量并赋予它们属性。如果没有给定变量名称,则显示所有变量的属性和值。
内建命令 typeset
、local
均等价于 declare
,只不过 local
命令只能用在函数内部。三个内建命令的选项参数及其含义均一致。
以下仅以 declare 内建命令为例进行解释。
2. 格式
1 |
|
其中,OPTION
指定了选项参数,NAME
指定变量名称,VALUE
指定了变量的值。
【注】当提供无效选项或发生变量赋值错误时返回失败;否则返回成功。
3. 选项
选项参数 | 说明 |
---|---|
-f |
将 NAME 视为函数并显示函数定义内容;未给定 NAME 则显示所有函数定义 |
-F |
将 NAME 视为函数但仅显示其函数名;未给定 NAME 则显示所有函数名称和属性 |
-g |
该选项仅在 Shell 函数内有效,用于指定创建的变量 NAME 为全局变量而不是局部变量 |
-p |
显示每个 NAME 变量的属性和值(使用该选项时其他所有选项无效);当未给定 NAME 时,显示所有变量的属性和值 |
-a |
将 NAME 定义为下标数组;未给定 NAME 则显示所有下表数组 |
-A |
将 NAME 定义为关联数组;未给定 NAME 则显示所有关联数组 |
-i |
使 NAME 带有整数(integer)属性;未给定 NAME 则显示所有整数变量 |
-l |
将 NAME 在赋值时转为小写 |
-n |
将 NAME 定义为 VALUE 变量的引用;未给定 NAME 则显示所有变量引用 |
-r |
将 NAME 定义为只读变量;未给定 NAME 则显示所有只读变量 |
-t |
使 NAME 带有 追踪(trace)属性;未给定 NAME 则显示所有带追踪属性的变量 |
-u |
将 NAME 在赋值时转为大写 |
-x |
将 NAME 导出;未给定 NAME 则显示所有导出变量 |
【注】使用 +
代替选项中的 -
会关闭指定选项。但 +a
特殊,其不能用于销毁一个数组变量。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!