概述
declare
命令可以用于声明 shell 变量及显示已经存在的变量。
declare
定义的变量仅能在当前 shell 环境中有效,切换 shell 环境后失效。
语法
该命令的语法如下:
declare [+/-][选项] [变量名=变量值]
该命令支持的选项有:
选项 | 说明 |
---|---|
+/- | "-“可用来指定变量的属性,”+"则是取消变量所设的属性 |
-a | 声明数组变量 |
-f | 仅显示函数 |
-F | 不显示函数定义 |
-i | 先计算表达式,把结果赋给所声明变量 |
-p | 显示给定变量的定义的方法和值,当使用此选项时,其他的选项将被忽略 |
-r | 定义只读变量 |
-x | 将指定的Shell变量转换成环境变量 |
使用
显示已经定义的变量
如果要查看所有的变量和函数,可以直接使用该命令,不给任何选项。命令格式如下:
declare
声明变量
如果想要使用该命令声明变量,语法格式如下:
# 语法
declare 变量名=变量值
# 示例
declare msg="hello world"
# 查看变量的值
echo $变量名
# 示例
echo $msg
数值运算
该命令可以进行数值上的运算,并且将计算结果赋给一个变量。格式如下:
# 语法
declare -i 变量名=表达式
# 示例
declare -i result=4*5
# 查看变量值
echo $result
查看变量属性
如果要查看变量的属性,可以使用 -p
选项。格式如下:
declare -p 变量名
转换普通变量为环境变量
我们可以用 declare
命令把普通变量声明为环境变量,效果和 export
命令一样。命令格式如下:
# 语法
declare -x 变量名=变量值
# 示例
declare -x msg="hello world"
注:如果要查看所有的环境变量,除了
env
命令之外,还可以使用declare -x
命令。
声明整型变量
我们可以使用 declare
命令声明一个普通变量为整型,即只能存储整数,如果存储其他数据类型的数据则会报错。命令格式如下:
# 语法
declare -i 变量名=整型变量值
# 示例
declare -i num=100
取消变量的属性
如果要取消变量的属性,可以将 -
改为 +
。例如取消 -i
选项赋给变量为只能存储整数值的属性就可以改为如下:
# 取消设置的只能存储整数的属性
declare +i 变量名
设置变量为只读
如果要把变量声明为只读则使用 -r
选项。命令格式如下:
# 语法
declare -r 变量名=变量值
# 示例
declare -r msg="hello world"
注:一旦给变量设定了只读属性,那么这个变量既不能修改变量的值,也不能删除变量,更不能用
+r
选项取消只读属性。但是, 因为这个变量只是命令行声明的,所以只要重新登录或重启,这个变量就会消失。
声明数组变量
如果要声明数组变量,则可以使用 -a
选项。命令格式如下:
# 语法
declare -a 数组变量名='([0]="值1" [1]="值2" ... [n]="值n")'
# 示例
declare -a arr='([0]="唐僧" [1]="孙悟空" [2]="猪八戒" [3]="沙僧")'
# 查看指定索引的数组原始
echo ${数组名[数组下标]}
# 示例
echo ${arr[0]}
# 查看整个数组变量的内容
echo ${数组名[@]}