Bash declare 语句
发布于 2009 年 4 月 21 日
虽然很少使用,但 bash declare 语句确实有一些有用的选项。它可以将变量标记为只读,也可以将其标记为仅为数字。
要将变量声明为只读,请使用以下语句
declare -r varname
考虑以下脚本
#!/bin/bash
a=13
declare -r a
echo $a
a=14
echo $a
运行时,第二个赋值将失败
$ sh decl.sh 13 decl.sh: line 6: a: readonly variable
要声明变量应仅接受数值(整数),请使用以下语句
declare -i varname
考虑以下脚本
#!/bin/bash
declare -i a
a=12
echo $a
a=hello
echo $a
运行时,第二个赋值会将零赋给变量,而不是语句中出现的字符串 "hello"
$ sh decl2.sh 12 0
declare 语句还有其他选项;-a 选项可用于将变量声明为数组,但这不是必需的。所有变量都可以用作数组,而无需显式定义。事实上,在某种意义上,似乎所有变量都是数组,并且没有下标的赋值与赋值给“[0]”相同。 考虑以下脚本
#!/bin/bash
a=12
echo ${a[0]}
b[0]=13
echo $b
运行时会产生
$ sh arr.sh 12 13
有关更多选项,请参见 bash 手册页(搜索“^SHELL BUILTINS”,然后搜索“declare”)。