一:条件测试bash
1. 语法:测试
test 条件表达式 或 [ 条件表达式 ]spa
2.文件测试:字符串
-d:测试是否为目录test
-f:测试是否为文件权限
-e:测试目录或文件是否存在语法
-r:测试当前用户是否有读取权im
-w:测试当前用户是否有写入权限脚本
-x:测试当前用户是否有执行权限hosts
例:测试/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