jackgaolei

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

默认情况下shell的变量类型都是字符型

1.使用declare声明变量类型

declare [+/-][选项] 变量名

-:给变量设定类型属性

+:取消变量类型属性

-a:声明为数组

-i:声明为整型

-x:声明为环境变量

-r:声明为只读

-p:显示变量被声明的类型

 

使用declare声明类型

[root@hadoop200 ~]# aa=11
[root@hadoop200 ~]# bb=22
[root@hadoop200 ~]# cc=$aa+$bb
[root@hadoop200 ~]# echo $cc
11+22
[root@hadoop200 ~]# declare -i dd=$aa+$bb
[root@hadoop200 ~]# echo $dd
33

 

使用declare查看声明类型

[root@hadoop200 ~]# declare -p cc
declare -- cc="11+22"
[root@hadoop200 ~]# declare -p dd
declare -i dd="33"
[root@hadoop200 ~]#

 

使用declare声明数组(可以使用[]直接声明数组,不使用declare -a)

[root@hadoop200 ~]# a[0]=gao
[root@hadoop200 ~]# a[1]=lei
[root@hadoop200 ~]# declare -a a[2]=jack
[root@hadoop200 ~]# echo $a
gao
[root@hadoop200 ~]# echo ${a}
gao
[root@hadoop200 ~]# echo ${a[*]}
gao lei jack
[root@hadoop200 ~]# echo ${a[1]}
lei
[root@hadoop200 ~]#

 

使用declare声明环境变量(和export的作用类似,实际上export是declare -x的简写)

[root@hadoop200 ~]#declare -p
...

 

2.使用expr或let数值运算工具

[root@hadoop200 ~]# aa=12
[root@hadoop200 ~]# bb=13
[root@hadoop200 ~]# cc=$(expr $aa + $bb)
[root@hadoop200 ~]# echo $cc
25

 

3.$((运算式)) 或 $[运算式]

[root@hadoop200 ~]# aa=20
[root@hadoop200 ~]# bb=30
[root@hadoop200 ~]# cc=$(($aa+$bb))
[root@hadoop200 ~]# echo $cc
50
[root@hadoop200 ~]# dd=$[$aa+$bb]
[root@hadoop200 ~]# echo $dd
50
[root@hadoop200 ~]#

 

 

posted on 2016-01-18 10:25  jackgaolei  阅读(229)  评论(0编辑  收藏  举报