Shell脚本编程【算式运算+条件比较+条件if】

整数运算
基本运算类型
四则运算
加法:num1+num2
减法:num1-num2
乘法:num1*num2
整除:num1/num2

求模:num1%num2


expr运算工具
计算指定的表达方式,并输出结果
格式:expr 整数1 运算符 整数2...
乘法操作应采用\*转义,避免被作为Shell通配符
expr 43 + 21 (expr $X + $Y)
expr 43 \* 21 (expr $X \* $Y)
expr 43 / 21 (expr $X / $Y)
expr 43% 21 (expr $X % $Y)


$[]算式替换
使用$[整数1 运算符 整数2 .. ..]
乘法操作*无需转义 ,运算符两侧可以无空格
引用变量可省去$符号
计算结果替换表达式本身,可结合echo命令输出


变量的字增/减等操作
使用$[]替换,或者let命令来完成
结合echo命令查看结果
简写表达式   完整表达式
   i++       i=i+1
   i--       i=i-1
   i+=2      i=i+2
   i-=2      i=i-2
   i*=2      i=i*2
   i/=2      i=i/2

   i%=2      i=i%2


小数运算
整数运算的局限性
bash内建机制仅支持整数值运算
-expr命令,$[]算式替换 不支持有小数的运算


使用bc实现小数运算
多数Linux系统默认安装此工具
--支持高精度的数值运算
--直接运算bc可进入交互式运算界面,quit退出
设置scale=n可约束小数位
结合管道向bc发送表达式
-多个表达式以分号分隔
-通过echo命令+管道传递要计算的表达式


小数值的比较
基本用法:
-echo "数值1 比较符 数值2" | bc
-如果表达式成立,则返回的计算结果为1,否则返回0
-常见比较操作:> ,>=,<,<=,==,!=


条件测试
Shell脚本的智能化
为命令的执行提供最直接的识别依据
-文件或目录的读/写等状态
-数值的大小
-字符串是否匹配
-多条件组合


常见的测试操作
字符串比较
【操作符 字符串】
-z 字符串的值为空
-n 字符串的值不为空(相当于!-z)
== 两个字符串相同
!= 两个字符串不相同


整数值比较
-eq 等于
-ne 不等于
-ge 大于或者等于
-le 小于或者等于
-gt 大于
-lt 小于


文件状态测试
-e 判断对象是否存在,若存在则结果为真
-d 判断对象是否为目录,是则为真
-f 对象是否为一般文件,是则为真
-r 判断对象是否有可读权限,是则为真
-w 判断对象是否有可写权限,是则为真

-x 对象是否1有可执行权限,是则为真


组合多个条件

逻辑分隔操作

&& 给定条件必须都成立,整个测试结果才为真
|| 只要其中一个条件成立,则整个测试结果为真


if选择结构
单分支结构
语法格式及特点
》当“条件成立”时执行命令序列
》否则,不执行任何操作
if 条件测试
  then 命令序列
fi


双分支结构
当“条件成立”时执行命令序列1
否则,执行命令序列2
if 条件测试
 then 命令序列1
  else 命令序列2
fi


多分支结构
语法格式及特点
相当于if语句嵌套
针对多个条件分别执行不同的操作
if 条件测试1
 then 命令序列1
elif 条件测试2
 then 命令序列
  else 命令序列
fi

























































































































































































































































猜你喜欢

转载自blog.csdn.net/zhydream77/article/details/80083155