一、算术运算
shell中的运算符有:+、-、*、\、%、**(开方,3**3,3的3次方)
运算命令有:expr、let、$(())、bc
1.1、expr
expr只能做整数运算,注意空格。
语法:
如:expr 1 + 1
expr 1 \* 1(出现*的时候要用转义符\)
1.2、let
let只能做整数运算,且运算元素必须是变量,无法直接对整数做运算。
let支持++、--、**运算,*不需要 \ 转义
语法:
如:let a=1+100;echo $a a=1+100,并打印a的值
let a++;echo$a
let a=100*3;echo$a
1.3、双小圆括号(())
在shell中(())也可以用来做数学运算,支持++、--、**,*不需要 \ 转义
语法:
如:echo $((1+1)) 计算1+1的值
1.4、bc
bc为linux中的一个文本计数器,可通过echo输入进行计算
语法:
如:echo "scale=2;3+100"|bc scale=2指定小数部分为两位,将echo中的内容输入bc进行计算
二、比较运算
shell中的比较运算符与我们常用的编程语言中的比较运算符不同
以上运算符只能用于整形数的比较,运用test命令进行比较
如:test 100 -gt 300;echo $? 100是否大于300,比较结果只能通过echo $?查看,0则为真,即执行成功;1则为假,即执行失败。
浮点数比较思路:
将两个数同时乘以n倍,使他们变成整形数,再进行比较
三、字符串比较
3.1、字符串比较运算符
== 等于
!= 不等于
-n 检查字符串的长度是否大于0
-z 检查字符串的长度是否为0
3.2、比较方法
如:test "root" == "root";echo $?
四、文件判断(类型、权限、新旧)
linux下可以通过test命令对文件类型进行判断
语法:
test options 表达式
OPTIONS:
如:test -f /etc/passwd;echo $? 判断passwd是否为存在且为文件