一、条件测试:
test 测试命令 :
- 格式1 :test 条件表达式
- 格式2: [ 条件表达式 ]
注意:此表达式中括号前后需要空格
1、文件测试:根据给定的路径名称,判断对应的是文件还是目录,或者判断文件是否可读、可写、可执行性等。
- -d: 测试是否为目录( Directory )
- -e: 测试目录或文件是否存在 ( Exist )
- -f : 测试是否为文件 ( File )
- -r : 测试当前用户是否有权限读取 ( Read )
- -w: 测试当前用户是否有权限写入 ( Write )
- -x : 测试当前用户是否有权限执行 ( excute )
2、整数值比较:整数值比较指的是根据给定的两个整数量,判断第一个数与第二个数的关系。
- -eq : 第一个数等于 (equal)第二个数
- -ne :第一个数不等于(not equal)第二个数
- -gt : 第一个数大于(greater than)第二个数
- -lt : 第一个数小于 (lesser than)第二个数
- -le : 第一个数小于或者等于 (lesser or equal)第二个数
- -ge : 第一个数大于或等于 (greater or equal)第二个数
3、字符串比较:用于检查用户输入,系统环境等是否满足条件,在提供交互式操作的shell脚本中,也可以用来判断用户输入的位置参数是否符合要求。
格式1:[ 字符串 1= 字符串2 ]
格式2:[字符串 1 != 字符串2 ]
- = : 字符串内容相同
- != : 字符串内容不同,!号表示相反的意思
- -z : 字符串内容为空
4、逻辑测试:判断两个或者多个条件之间的依赖关系。
格式1 : [ 表达式1 ] 操作符 [ 表达式2 ]
格式2: 命令1 操作符 命令2
- -a或&& :逻辑与,“而且” 的意思
- -o 或 || :逻辑或, “或者”的意思
- ! : 逻辑否
二、if 语句:
当我们遇到需要选择执行的命令语句较多时,可以使用 if 条件语句,可以更好的整理脚本结构,使得层次分明,清晰易懂。
(1)单分支的 if 语句:
分支指的是不同测试结果所对应的执行语句(一条或者多条)。对于单分支的选择结构,只有在“条件成立”时才会执行相应的代码,否则不执行如何操作。
1、语法结构:
if 条件测试操作
then 命令序列
fi
2、操作实例:
(2)双分支的 if 语句:
对于双分支的选择结构,要求针对“条件成立”、“条件不成立” 两种情况分别执行不同的操作
1、语法格式:
if 条件测试操作
then
命令序列1
else
命令序列2
fi
2、操作实例:
输入一个成绩,如果数字比90大的话,则奖励一个手机,否则的话惩罚10块钱。
(3)多分支 if 语句:
由于 if 语句可以根据测试结果的成立、不成立来分别执行操作,所以可以嵌套使用,进行多次判断。
1、语法结构:
if 条件测试操作1
then
命令序列1
elif 条件测试操作2
then
命令序列2
else
命令序列3
fi
2、操作实例1:
跑步比赛,输入你的比赛成绩,如果成绩小于10,则进入决赛,再根据性别分入相对应的组别,如果成绩不合格,则淘汰。
操作实例2:
输入期末考试成绩,如果在85~100之间,则为优秀;60-84之间,则为良好;60分以下,则为不合格。