13.4.3 内建运算命令declare

第11章中讲到declare是Shell的内建命令,通过它们也能进行整数运算。虽然说Shell可以不利用declare命令创建变量,但是通过下面的例子可以看到,它和显式使用declare定义变量的差别是很大的。在下面的示例中,例1里的变量I未经正式定义便赋值“1+1”,对Shell来说,此时的“1+1”只是一个字符串,和“abc”无异,所以打印出来也只是字符串。而例2中,使用declare显式地定义了整数变量J(-i参数指定变量为“整数”),此时再赋值“1+1”,Shell会将后面的字符串解析成算术运算,所以打印出的值是算术表达式的计算值。


#

例1

:不使用declare

定义变量

[root@localhost ~]# I=1+1

[root@localhost ~]# echo $I

1+1

#

例2

:使用declare

定义变量

[root@localhost ~]# declare -i J

[root@localhost ~]# J=1+1

[root@localhost ~]# echo $J

2

#

注意,Shell

中的算术运算要求运算符和操作数之间不能有空格,而是紧密连接的;特殊符号在这里

也不需要用转义符转义(比如这里的+

号);如果算术表达式中含有其他变量也不需要用$

引用