目录
一、条件测试:
格式1:test 条件测试的表达式
格式2:[ 条件测试表达式 ] 两边有空格
[[ ]]:语法和但中括号一致,功能强大,避免歧义,支持正则表达式
1、test常用的操作符:
-e:测试目录或文件是否存在
-d:测试是否为目录
-f:测试是否为文件
-r:测试当前用户是否具有读权限
-w:测试是否有写权限
-x:测试是否有执行权限
2、test比较字符串:
比较符号:(只能整数之间比较)
-eq:等于
-ne:不等于
-gt:大于
-lt:小于
-le:小于等于
-ge:大于等于
-z:检测字符串是否为空
以上只能用于比较整数,不能用于字符串
1 -eq 2
变种写法:
== 等于(可以比较字符串,比较字符串是否一致)
而-eq则不能比较字符串
!= 不等于(可以比较字符串)
> 大于
< 小于
<= 小于等于
>= 大于等于
如: 4 -gt 5 和 4 > 5
3、检查自己的脚本语法逻辑的命令:
bash -x 脚本名
4、逻辑测试:
且 条件测试的条件都要为真
-a 、&& 表示
或 又一边满足即可
-o 、|| 表示
! 逻辑否
格式:
[ 表达式1 ] 操作符 [ 表达式2 ]
双中括号只能用 && || 表示逻辑且或者逻辑或
单中括号只能用-a -o
二、if语句的结构:
1、单分支结构:
命令格式:
if [[ ]]
then
命令序列(只有条件满足才会执行)
fi
举例:
2、双分支结构:
格式:
if [ ]
then
echo “满足if条件执行的语句“
else
echo “不满足if条件执行的语句”
fi
举例:
1、双分支结构小实验:
要求有一个IP地址,这个需要用户你手动输入,然后判断,ping通要保留/opt/hosts.txt
ping 不通,打印结果,IP地址不可用
查看奇偶数:
3、多分支结构:
格式语法:
if [条件1]
then
执行条件1的命令序列
elif [条件2]
then
执行条件2的命令序列
else
上述都不满足,执行else的命令序列
fi
1、多分支结构小实验:
4、if嵌套:
格式:
if []
if []
1、镶嵌小实验:
从0-100中
输入一个数,判断是整数,而且范围必须在0-100之间才能继续执行:
输入的数字是奇数还是偶数
整数
输入的数字大于10
输入的数字比10小
输入的数字和10相等
提示用户输入100米赛跑的秒数,要求判断秒数大于0且小于等于10秒的进入选拔赛,大于10秒的都淘汰,
如果输入其它字符则提示重新输入;进入选拔赛的成员再进一步判断男女性别,
男生进男生组,女生进女生组,如果输入错误请提示错误(整数判断,小数判断。9.72 3.21 )
三、case语句
和if else相同的思路模式,只不过换了种写法:
1、case小实验:
将奇数+1 偶数+2
用case语句解压根据后缀名为 .tar.gz 或 .tar.bz2 的压缩包到 /opt 目录
用case语句控制 firewalld start|stop|restart|status 来管理firewalld服务,
要求如果命令选项不对,则提示输入不正确: {start|stop|status|restart}”。