shell运算符详解

来源:互联网 发布:电脑软件学校招生 编辑:程序博客网 时间:2024/04/26 17:08

Declare命令

declare 声明变量类型

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

选项:

                   -给变量设定类型属性;

                   +取消变量的类型属性

                   -a将变量声明为数组型

                   -i将变量声明为整数型(integer

                   -x将变量声明为环境变量

                   -r将变量声明为只读型

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

把变量声明为数值型:

         命令如下:aa=1

                            Bb=22

                   Declare –i cc=$aa+$bb #声明变量cc的类型是整数形,它的值是aa和bb的和;

把变量声明为数组型

         命令如下:movie[0]=zp

                            movie[1]=tp

                            declare –a movie[2]=live #声明movie为数组型

         查看数组命令:

                            Echo ${movie}#查看下标为0的数组值

                            Echo ${movie[1]}#查看下标为1的数组值

                            Echo ${movie[*]}#查看数组中所有的元素

把变量声明为数组型

         命令如下:declare –x test=123#和export作用相似,但其实是declare命令的作用

把变量声明为只读属性

         命令如下:declare –r test #给test赋予只读属性,但是请注意只读属性会让变量不能修改不能删除,甚至不能取消只读属性;

查询变量的属性

         命令如下:declare –p   #查看所有变量的属性

                            declare –p变量名 #查询指定变量的属性

 

数值运算的方法

数值运算方法1

         命令如下:aa=1

                            bb=2

                            declare–i cc=$aa+$bb

使用exprlet数值运算工具

命令如下:

aa=11

bb=22

dd=$(expr $aa + $bb)  #注意“+”号左右两侧必须有空格

 

$((运算式))或者 $[运算式]

         命令如下:

                   aa=11

                   bb=22

                   ff=$(($aa+$bb))

                   gg=$[$aa+ $bb1]

 


优先级越大越先使用

 

Eg:aa=$(( (11+3)*3/2))

         bb=$((14%3))

         cc=$((1&&0)) #逻辑与运算只有两边都是1的时候才为1,否则结果为0