一:条件测试
1. 语法:
test 条件表达式 或 [ 条件表达式 ]
2.文件测试:
-d:测试是否为目录
-f:测试是否为文件
-e:测试目录或文件是否存在
-r:测试当前用户是否有读取权
-w:测试当前用户是否有写入权限
-x:测试当前用户是否有执行权限
例:测试/etc/hosts文件是否存在.如图
2.数值比较:
-eq:相等
-ne:不相同
-le:小于等于
-ge:大于等于
-gt:大于
-lt:小于
例:如图
4.字符串比较:
=:第一个字符串和第二个字符串相等
!=:第一个字符串和第二个字符串不相等
-z:检查字符串是否为空
例:如图
5.逻辑测试:
&&:逻辑与,表示前后2个条件都成立时,测试命令返回值为0(结果成立)
||:逻辑或的意思,表示前后2个条件有其中一个满足条件时,测试命令返回值为0(结果成立)
!:逻辑否,当条件不成立时,测试命令返回值为0(结果成立)
例如图:
二:if条件语句
1.单分支if语句:只在"条件成立"才执行相应的代码操作,否则不做任何操作.
语法:
if 条件测试操作
then
命令序列
fi
例如:编写个脚本,测试系统中是否有/media/cdrom这个目录,如果没有则创建.
脚本如下:
#!/bin/bash
mulu="/media/cdrom"
if [ ! -d $mulu ] ; then
mkdir -p $mulu
fi
2.多分支if语句:针对单分支条件不成立时,执行另一个操作.
语法
if 条件测试操作
then //条件成立执行命令序列1
命令序列1
else //条件不成立则执行命令序列2
命令序列2
fi
例:编写一个连通性测试小脚本.根据ping结果显示不同的提示,成功显示chenggong 失败显示shibai.如下:
#!/bin/bash
ping -c 3 -i 0.2 -W 3 $1 &> /dev/null //此操作不显示在屏幕上
if [ $? -eq 0 ] //上面条件成立则运行下面命令
then
echo "chenggong"
else //不成立则运行下面的命令
echo "shibai"
fi
3.多分支if语句:对多个互斥的条件执行不同的操作.
语法:
if 条件测试操作1
then
命令序列1
elif
then
命令序列2
else
命令序列3
fi
例:编写1个成绩小脚本,90-100显示优秀,70-80显示一般,其他不及格.如
#!/bin/bash
read -p "请输入你的成绩" chengji
if [ $chengji -ge 90 ] && [ $chengji -le 100 ]
then
echo "你的成绩很优秀"
elif [ $chengji -ge 70 ] && [ $chengji -lt 90 ]
then
echo "你的成绩一般"
else
echo"你的成绩不级合格"
fi
来源:oschina
链接:https://my.oschina.net/u/994235/blog/202750