declare命令用于声明和显示shell变量。
declare为shell指令,命令与 typeset一样,可同时指定多个属性。若不加上任何参数,则会显示全部的shell变量与函数(与执行set指令的效果相同)。
语法
declare [-aAfFilrtux] [-p] [name [= value] ...]
常用选项:
- - "-"可用来指定变量的属性,"+"则是取消变量所设的属性。
- -f 仅显示函数。
- -p 不跟变量名显示所有变量及其属性。
- r 将变量设置为只读,只读变量不允许修改,也不允许删除。
- x 指定的变量会成为环境变量,可供shell以外的程序来使用。
- i 定义变量为整数,在之后就可以直接对表达式求值,结果只能是整数。如果求值失败或者不是整数,就设置为0。
- l 当变量赋值时,禁用大写字母,将所有大写字母转换成小写
- u 当变量赋值时,禁用小写字母,将所有小写字母转换成大写
例子:
声明环境变量,可在子shell中使用,子shell中设置的环境变量不可以在父shell中使用:
设置只读变量,不能更改,不能删除:
定义变量为整数,不可以设置为小数,运算取整:
declare命令还可以对变量的值进行赋值: