1.数字的运算
在shell下是不支持直接输入数字进行数字的运算的
可以通过$(())包裹算式来计算
支持的运算有
+ - * / :对应加减乘除
** : 乘方
% : 取余
& | ! ^ : 对应与(AND)或(OR)非(NOT)异或(XOR)
暂时用不到,这几个运算,就先不介绍了
要注意的是$(())只支持整数运算
运算结果有小数的,会舍弃小数点后的数字
运算里面包含小数会报错
2.数字大小判断
>,=,==,!=:对应大于,小于,小于等于,大于等于,相等,不等
如果判断值为正确,那么会返回1,判断为错误会返回0
3.if语句
执行结果
如果只是简单的判断,也可以省略else语句
执行结果
如果要进行多次判断,
同样这里面的else也可以省略
我们写一个比较简单的小例子,判断秒的数字是否大于分的数字
使用date命令,我使用了分号;隔开了两个命令,执行完第一条命令后,紧接着执行了第二条命令
第二条命令通过格式化时间类型,打印出了当前的小时,分钟,秒
我们只取分钟和秒的值
下面开始写脚本
执行结果
在执行过程中发现了错误
这就是脚本的bug,也就是没有考虑到的情况出现了
$(())里面会把0开头的数字当做是8进制数,所以08和09都会出现这个错误,我们需要把数字前面的0去掉
这里使用awk给此打印此值加上0,来去掉数字前面的0
修改后的脚本
执行的结果也没有报错了