shell 编程之运算符
一、declare 命令
1 declare 声明变量类型
declare [+/-][选项] 变量名
-:给变量设定类型属性
+:取消变量的类型属性
-a:将变量声明为数组型
-i:将变量声明为整数型(integer)
-x:将变量声明为环境变量
-r:将变量声明为只读变量
-p:显示指定变量的被声明的类型
把变量声明为数值型
aa=11
bb=22
//给aa和bb赋值
declare -i cc =$aa+$bb
//声明变量cc的类型是整数型,它的值是aa和bb的和
声明数组变量
定义数组
movie[0] =zp
movie[1]=tp
declare -a movie[2] = live
查看数组
echo ${movie} 默认输入第一个值
echo ${movie[2]} 输入下标2
echo ${movie[*]} 输入所有值
声明环境变量
declare -x test 123 和export作用相似,但其实是declare命令的作用
声明变量只读属性
declare -r test 给test赋予只读属性,但是请注意只读属性会让变量不能修改不能删除,甚至不能取消只读属性
查询变量的属性
declare -p 查询所有变量的属性
declare -p 变量名 查询指定变量的属性
二、数值运算的方法
数值运算方法1
aa=11
bb=22
declare -i cc =$aa+$bb
方法2:expr或left数值运算工具
aa=11
bb=22
dd=$( expr $aa+$bb )
//dd的值是aa和bb的和,注意“+”号左右两侧必须有空格
方法3:$((运算符)) 或 $[运算式]
aa=11
bb=22
ff=$(( $aa+$bb ))
gg=$[ $aa+$bb ]
运算符
优先级 运算符 说明
13 -/+ 单目负,单目正
12 !, ~ 逻辑非,按位取反或补码
11 * , / , % 乘,除,取余
10 +,- 加、减
9 《,》 按位左移,按位右移
8 <=,>=,<,> 小于或等于,大于或等于,小于,大于
7 ==,!= 等于,不等于
6 & 按位与
5 ^ 按位异或
4 | 按位或
3 && 逻辑与
2 || 逻辑或
1 =,+=,-=,*=,/= 赋值、运算且赋值
%=,&=,^=,!=
《=,》=
变量测试
变量置换方式 变量y没有设置 变量y为空值 变量y设置值
x=${y-新值} x=新值 x为空 x=$y
x=${y:-新值} x=新值 x为空 x=$y
x=${y+新值} x为空 x=新值 x新值
x=${y:+新值} x为空 x为空 x新值
x=${y=新值} x=新值 x为空 x=$y
y=新值 y值不变 y值不变
x=${y:=新值} x=新值 x=新值 x=$y
y=新值 y=新值 y值不变
x=${y?=新值} 新值输出到标准 x=空 x=$y
错误输入(屏幕)
x=${y:?新值} 新值输出到标准 x=空 x=$y
错误输入(屏幕)
网友评论