Shell declare和typeset命令

Shell declare和typeset命令教程

Shell 中,declare 和 typeset 都是 Shell 内建命令,它们的用法相同,都用来设置变量的属性。不过 typeset 已经被弃用了,建议使用 declare 代替。

Shell declare命令详解

语法

declare [+/-] [aAfFgilprtux] [变量名=变量值]

参数

选项 含义
-f [name] 列出之前由用户在脚本中定义的函数名称和函数体。
-F [name] 仅列出自定义函数名称。
-g name 在 Shell 函数内部创建全局变量。
-p [name] 显示指定变量的属性和值。
-a name 声明变量为普通数组。
-A name 声明变量为关联数组(支持索引下标为字符串)。
-i name 将变量定义为整数型。
-r name[=value] 将变量定义为只读(不可修改和删除),等价于 readonly name。
-x name[=value] 将变量设置为环境变量,等价于 export name[=value]。

说明

其中,- 表示设置属性,+ 表示取消属性,aAfFgilprtux 都是具体的选项。

案例

将变量声明为整数

我们首先,打开一个 Shell,并编写以下脚本,使用 declare 命令将变量声明为整数:

#!/bin/bash declare -i m n ret #将多个变量声明为整数 m=10 n=30 ret=$m+$n echo $ret

接着,我们使用如下命令,执行该脚本,具体命令如下:

sh hellohaicoder.sh

运行后,终端输出如下:

64_Shell declare命令.png

我们看到,我们使用了 declare 将变量声明为了整型,并实现了整型的加法运算。

将变量声明为只读变量

我们首先,打开一个 Shell,并编写以下脚本,使用 declare 命令将变量声明为只读变量:

#!/bin/bash declare -r n=10 n=20

接着,我们使用如下命令,执行该脚本,具体命令如下:

sh hellohaicoder.sh

运行后,终端输出如下:

65_Shell declare命令.png

我们看到,我们使用了 declare 将变量声明为了只读变量。

显示变量属性和值

我们首先,打开一个 Shell,输入以下命令:

declare -r n=10

接着,我们使用如下命令,查看变量属性,具体命令如下:

sh hellohaicoder.sh

运行后,终端输出如下:

66_Shell declare命令.png

我们看到,我们使用了 declare 显示变量属性和值。

Shell declare命令总结

在 Shell 中,declare 和 typeset 都是 Shell 内建命令,它们的用法相同,都用来设置变量的属性。不过 typeset 已经被弃用了,建议使用 declare 代替。