shell脚本的分支使用测试

5 篇文章 0 订阅


shell的应用

这章主要是使用test条件测试、整数比较、字符串比较、逻辑运算比较以及if判断。


(一)条件测试

1.test的条件测试结果有

真
假

2.条件测试语法

[ 条件 ]
test 条件

3.条件测试选项

-d:判断是否为目录
-f:判断是否为文件
-w:判断是否有写入权限
-r:判断是否有读取权限
-x:判断是否有执行权限
-e:判断文件目录是否存在

4.测试一下命令

mnt是否是目录(如果是目录则显示yes)
代码如下:

[root@dns1 ~]# test -d /mnt/
[root@dns1 ~]# echo $?
0

二、整数比较

1.整数比较运算符的类型

gt:大于
lt:小于
ge:大于等于
le:小于等于
eq:等于
ne:不等于

2.整数比较应用

代码如下:

使用10大于5测试一下代码

[root@centos01 ~]# [ 10 -gt 5 ] && echo "yes"

三、字符串比较

1.字符串比较运算符类型

	=:字符串内容是否相同
	=!:字符串内容不相同
	-z:检查字符串是否为空

2.整数比较应用

[root@centos01 ~]# [ "bob" = "bob" ] && echo "yes"

四.逻辑运算比较

1.逻辑运算操作符

	a:条件必须全部为真,可以使用符号&&表示
	o:条件匹配任意一个为真,可以使用符合||
	!:逻辑否取反

判断两个目录是否存在
代码如下:

[root@centos01 ~]# [ "bob" = "bob" ] && echo "yes"

(二)if判断

一、if单分支

1.单分支特点

满足条件执行命令

2.if单分支结构

if 条件
then
	命令序列
fi

3.测试目录是否存在不存在创建

[root@centos01 ~]# vim mkdir.sh
 		 #!/bin/bash
  		mount="/media"
		  if [ ! -d $mount ]
		  then
 		 mkdir $mount
  		fi

二、if双分支

1.特点

	判断第一个条件匹配执行命令序列一
	条件不匹配执行命令二

2.if双分支结构

	if 条件 
	then 
		  命令序列一
	else
		 命令序列二
	fi

3.判断主机是否开机

[root@centos01 ~]# vim ping.sh
#!/bin/bash
read -p "请输入IP地址:" ip
ping -c 3 -i 0.5 -w 3 $ip &> /dev/null
if [ $? -eq 0 ]
then
  echo "host $ip is up!!!"
else
  echo "host $ip is down!!"
fi

三、if多分支判断

1.特点

	第一个条件匹配执行命令序列一
	第一个不匹配匹配第二个条件执行命令序列二
	一和二条件都不匹配执行默认命令

2.if多分支条件

	if 条件一
	 then 
		命令序列一 
	elif 条件二 
	then 
		命令序列二 
	else 
		命令序列三
	fi 

3.if多分支的应用

[root@centos01 ~]# cat ./test.sh 
#!/bin/bash
read -p "请输入考试成绩:" int
if [ $int -ge 85 ] && [ $int -le 100 ]
then
 echo "你的考试成绩是$int,太棒了优秀!!!"
elif [ $int -ge 70 ] && [ $int -le 84 ]
then
 echo "你的考试成绩是$int,考试合格需要继续努力!!!"
else
 echo "你的考试成绩是$int,你学校重新学习!!"
fi 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值