LinuxShell命令declare、local、typeset

【注】具体详解参见 help 手册。

1. 简介

Linux Shell 内建命令 declare 用于声明变量并赋予它们属性。如果没有给定变量名称,则显示所有变量的属性和值。

内建命令 typesetlocal 均等价于 declare,只不过 local 命令只能用在函数内部。三个内建命令的选项参数及其含义均一致。

以下仅以 declare 内建命令为例进行解释。

2. 格式

1
declare [OPTION] [NAME[=VALUE] ...]

其中,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 协议 ,转载请注明出处!