文章目录
一、条件测试操作
test命令
- 测试特定的表达式是否成立,当条件成立时,测试语句的返回值为0,否则为其他数值
格式1:test 条件表达式
格式2:[ 条件表达式 ]
1、文件测试
[ 操作符 文件或目录 ]
常用的测试操作符
- -d:测试是否为目录(Directory)
- -e:测试目录或者文件是否存在(Exist)
- -f:测试是否为文件(File)
- -r:测试当前用户是否有权限读取(Read)
- -w:测试当前用户是否有权限写入(Write)
- -x:测试当前用户是否有权限执行(eXcute)
判断文件或目录是否存在:
方法一:使用test
方法二:使用 [ ]
2、整数值比较
[ 整数1 操作符 整数2]
常用的测试操作符
- -eq:等于(Equal)
- -ne:不等于(Not Equal)
- -gt:大于(Greater Than)
- -lt:小于(Lesser Than)
- -le:小于或等于(Lesser or Equal)
- -ge:大于或等于(Greater or Equal)
3、字符串比较
格式1:
[ 字符串1 = 字符串2 ]
[ 字符串1 != 字符串2 ]
格式2:
[ -z = 字符串 ]
常用的测试操作符
- =:字符串相同
- !=:字符串内容不同,!号表示相反的意思
- -z:字符串内容为空
4、逻辑测试
格式1:[ 表达式1 ] 操作符 [ 表达式2 ] …
格式2:命令1 操作符 命令2 …
常用的测试操作符
- -a或&& :逻辑与,“而且”的意思
- -o或|| :逻辑或,“或者”的意思
- ! :逻辑否
二、if语句的结构
单分支结构
条件成立则继续执行then后面的命令
条件不成立将不执行,直接exit退出结束
双分支结构
条件成立则执行then后面的命令1
条件不成则执行else面的命令2
多分支结构
条件1成立则执行then后面的命令1
条件1不成立则执行条件2
条件2成立则执行then后面的命令
条件2不成立则默认执行else后面的命令
单分支if语句:
双分支:
双分支if语句:判断目标主机是否存在,显示检测结果
ping -c 发送3个包
-i 每个包间隔0.2秒
-W 等在3秒
$1 位置变量 脚本后面可以跟一个参数
多分支if语句:判断分数范围
三、case分支语句
1、case多分支语句针对变量的不同取值,分别执行不同的命令序列
if语句:适用于判断区间范围
case语句:适用于判断某一个固定值,固定字符串
2、示例
击键类型识别key
#!/bin/bash
read -p "请敲击一个键:" key
case $key in
[0-9])
echo "你敲击的是一个数字"
;;
[a-z]|[A-Z])
echo "你敲击的是一个字母"
;;
*)
echo "你敲击的是一个符号或功能键"
esac
成绩判定
#!/bin/bash
read -p "请输入你的成绩:" ji
case "$ji" in
[0-9]|[1-5][0-9])
echo "你的成绩不合格"
;;
6[0-9]|7[0-4])
echo "你的成绩合格"
;;
7[5-9]|8[0-4])
echo "你的成绩良好"
;;
8[5-9]|9[0-9]|100)
echo "你的成绩优秀"
;;
*)
echo "输入错误,请输入0-100之间的整数"
esac