Bash declare 语句

作者:Mitch Frazier

虽然很少使用,但 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”)。

Mitch Frazier 是艾默生电气公司的嵌入式系统程序员。 自 2000 年代初以来,Mitch 一直是Linux Journal的贡献者和朋友。

加载 Disqus 评论