shell的流程控制
一、五大运算
二、if语句
一、五大运算
1.数学比较运算---比较的是整型!!!!!!!!!!
输入命令: man test
查看以下比较运算符的使用
【note】test 命令的作用:检测文件类型或者是比较运算
test - check file types and compare values
- -eq 等于
- -gt 大于
- -ge 大于等于
- -lt 小于
- -le 小于等于
- -ne 不等于
test 只会运算,不会告诉结果;所以需要用到组合命令echo
j:~/myself_study/shell_j$ test 9 -gt 7; echo $? 0 j:~/myself_study/shell_j$ test 8 -ge 8;echo $? 0
如果要比较float, 该怎么比较?----放大10的整数倍,变成整型的比较运算
MBC02FV3MZMD6P:J_shell j$ echo "2.5*10" | bc 25.0 MBC02FV3MZMD6P:J_shell j$ echo "2.5*10"|bc|cut -d '.' -f1 25 MBC02FV3MZMD6P:J_shell j$ echo "2.5*10"|bc|cut -d '.' -f2 0
举例
#!/bin/bash
NUM1=`echo "1.5*10"|bc|cut -d "." -f1`
NUM2=20
test $NUM1 -ge $NUM2;echo $?
执行:-x 表示debug,可以看到每一步的计算步骤
2.文件的比较跟检查
- -d 检查文件是否存在且为目录
- -e 检查文件是否存在(可以是目录也可以是文件)
- -f 检查文件是否存在且为文件
- -r 检查文件是否存在且可读
- -s 检查文件是否存在且不为空
- -w 检查文件是否存在且可写
- -x 检查文件是否存在且可执行
- file1 -nt file2 检查文件file1是否比file2新 (nt =new than)
- ile1 -ot file2 检查文件file1是否比file2旧 (nt =old than)
举例 -d:/tmp/abc目录不存在,创建后再test,存在
3.字符串的比较运算
- == 等于
- != 不等于
- -n 检查字符串的长度是否大于0(字符串不为空)
- -z 检查字符串的长度是否为0(字符串为空)
4.赋值运算 =
5.逻辑运算
- && 与
- || 或
- ! 非