概述
- 条件测试
- 逻辑测试
- 文件测试
- 常用的测试操作符
- 整数测试
- 常用的测试操作符
- 字符串比较
- 常用的测试操作符
- if语句
- if单分支
- 双分支
- 多分支
- 示例
- case语句
条件测试
- test命令 测试表达式是否成立,若成立返回0,否则返回其他数值
逻辑测试
[ 表达式1 ] 操作符 [ 表达式2 ]
-a或者&& :逻辑与,而且的意思(第一个成立就不会再看后面了)
-o或|| :逻辑或,或者的意思(第一个成立就直接成立)
! :逻辑否,取反(和后面的一个字符中间有空格)
文件测试
[ 操作符 文件或目录 ]
常用的测试操作符
-d 测试是否为目录
-e 测试目录火文件是否存在
-f 测试是否为文件
-r 测试当前用户是否有权限读取
-w 测试当前用户是否有权限写入
-x 测试当前用户是否有权限执行
[root@localhost ~]# mkdir tt
[root@localhost ~]# touch xx
[root@localhost ~]# [ -d tt ] && echo y || echo n #如果tt是目录输出y
y
[root@localhost ~]# [ -d xx ] && echo y || echo n #如果xx是目录输出y不是输出n
n
整数测试
[ 整数1 操作符 整数2 ]
常用的测试操作符
-eq 等于(Equal)
-ne 不等于(Not Equal)
-gt 大于(Greater Than)
-lt 小于(Lesser Than)
-le 小于或等于(Lesser or Equal)
-ge 大于或等于(Greater or Equal)
[root@localhost ~]# [ 1 -eq 1 ] && echo "y" || echo "n" #确认是否成立,如果成立就不会再看后面的选项,如果不成立就输出后面的选项,很明显成立,所以输出y
y
字符串比较
[字符串1 = 字符串2]
[字符串1 !=字符串2]
[-z 字符串]
常用的测试操作符
- = :字符串内容相同
- != :字符串内容不同,!号表示取反
- -z :字符串内容为空
[root@localhost ~]# test 1 == 2 #用1和2测试是否1等于2
[root@localhost ~]# echo $? #显示上条命令结果
1 #为1表明1并不等于2
[root@localhost ~]# test 1 == 1 #1是否等于1,返回为0表示是成立的
[root@localhost ~]# echo $?
0
[root@localhost ~]# test 1 != 2 #!=为1不等于2
[root@localhost ~]# echo $?
0 #返回值为0,表示1确实不等于2
if语句
if单分支
if 条件测试操作
then 命令序列
fi
双分支
if 条件测试操作;then
命令序列1
else 命令序列2
fi
多分支
if 条件测试操作1;then
命令序列1
elif 条件测试操作2;then
命令序列2
else
命令序列3
fi
示例
#!/bin/bash
#测试服务是否安装
#如果安装并启动了就显示服务已启动
#如果美欧安装了没有启动就启动服务
#如果没有安装就安装服务
read -p "请输入要检测的服务:" server
netstat -anp | grep $server &> /dev/null
if [ $? -eq 0 ];then
echo "$server服务已经启动!"
else
rpm -q $server &> /dev/null
if [ $? -eq 0 ];then
echo "$server服务已安装,正在启动...."
service $server start
else
yum -y install $server
systemctl start $server
fi
fi
[root@localhost ~]# ./2.sh
请输入要检测的服务:bind
bind服务已经启动!
#!/bin/bash
#交互式创建用户并且创建密码
#创建完用户后确定已经创建
read -p "请输入用户名:" user
read -p "请输入密码:" passwd
useradd $user
echo "$passwd" | passwd --stdin $user
id $user
[root@localhost ~]# bash gg.sh
请输入用户名:hha
请输入密码:123
useradd:用户“hha”已存在
更改用户 hha 的密码 。
passwd:所有的身份验证令牌已经成功更新。
uid=1032(hha) gid=1032(hha) 组=1032(hha
case语句
case 变量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
……
*)
默认命令序列
esac
#!/bin/bash
#输入月份查询属于第几季度
read -p "请用中文输入月份:" yf
case $yf in
一月|二月|三月)
echo "第一季度";;
四月|五月|六月)
echo "第二季度";;
七月|八月|九月)
echo "第三季度";;
十月|十一月|十二月)
echo "第四季度";;
esac
[root@localhost ~]# bash yuefen.sh
请用中文输入月份:一月
第一季度
最后
以上就是搞怪黄豆为你收集整理的shell脚本的条件测试、if语句和 case分支语句条件测试if语句case语句的全部内容,希望文章能够帮你解决shell脚本的条件测试、if语句和 case分支语句条件测试if语句case语句所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复