《Centos系统——shell脚本判断语句》

一、 掌握表达式测试包括字符串测试、整数测试、文件测试及逻辑测试

1. 掌握字符串测试

a)格式

[ str1 opr str2 ]     //注意方括号左右两边的空格
[ opr str ]
opr取值:
相等:=      //判断两个字符串是否相等
不等:!=     //判断两个字符串是否不等
空串:-z     //判断字符串长度是否为0,即判断字符串是否为空,为空返回真,非空返回假
非空串:-n    //判断字符串长度是否不为0,即判断字符串是否非空,为空返回假,非空返回真

b)例子

name=tom; [ -z $name ]; echo $?  
name2=andy;  [ $name = $name2 ]; echo  $?

2. 掌握整数测试

a)格式

test "num1" opr "num2"
[ "num1" opr "num2" ]
opr 取值: 
相等:-eq
不等:-ne
大于:-gt
小于:-lt  【l是字母L的小写】
小于等于:-le
大于等于:-ge
整数测试也可使用let命令或双括号(( )),相关操作符为:== ,!=,>,>=,<,<=
(let 和双圆括号中可以使用算数表达式,而中括号不能,let和双圆括号中,操作符两边可以不留空格)

b)例子

x=1;[ $x -eq 1 ];echo $?
x=1; let "$x==1";echo $?
x=1;(($x+1>=2));echo $?

在这里插入图片描述

在这里插入图片描述

#!/bin/bash
num=10
read -p "输入一个数:" n
if (( $n == $num )); then
	echo "蒙对了"
elif [ $n -gt $num ]; then
	echo "蒙大了"
elif [ $n -lt $num ]; then
	echo "蒙小了"
else
	echo "输入错误,重新输入"
fi

3. 掌握文件测试

a)格式:[ opr file ]

opr取值:
目录: -d    
普通文件: -f
链接: -L
可读: -r
可写: -w
可执行: -x
文件非空: -s

b)例子

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
-s 是否为空
是否有权限

在这里插入图片描述
不能具体到属主,属组

在这里插入图片描述

判断两个文件时间和硬链接

在这里插入图片描述

#!/bin/bash
#拷贝/var/log到/mult
if [ ! -d /mult ]; then
	mkdir /mult
fi
cp /var/log/*.log /mult
if [ $? -eq 0 ]; then
	echo "成功"
else
	echo "失败"
fi

4.掌握逻辑测试,多重判断

### a)格式
逻辑与: -a          格式: [ condition1 -a condition2 ]
逻辑或: -o          格式: [ condition1 -o condition2 ]
逻辑否: !           格式: [ ! condition ]

b)例子

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#!/bin/bash
read -p "username" username
read -p "password" password
if [ $username !="tom" -o password !="123" ]; then
	echo "用户名或密码错误"
else
	echo "登录成功"
fi
#!/bin/bash
pgrep mysqld
if [ $? -eq 0 ]; then
	echo "mysql正常运行"
else
	echo "mysql未运行"
	echo "启动mysql中"
service mysqld start
sleep 1
echo "mysql已开启"
fi

二、 掌握if语句的应用范围:主要包括对字符串的判断、对整数的判断、对文件的判断和逻辑判断等

1. 掌握if条件语句

if单分支举例

在这里插入图片描述
在这里插入图片描述

单分支if语句格式

if  [ 表达式 ]; then
		操作
fi

在这里插入图片描述

if单分支实例

在这里插入图片描述
在这里插入图片描述

if双分支举例

在这里插入图片描述

双分支if语句格式

if [ 表达式 ]; then
	操作1
else
	操作2
fi

在这里插入图片描述

if双分支实例一

在这里插入图片描述
在这里插入图片描述

if双分支实例二

监控apache 两种方法都可以,端口和pid
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

多分支if语句举例

在这里插入图片描述

if [ 表达式 ]; then
	操作1
elif [ 表达式 ];then
	操作1
else
	操作2
fi

在这里插入图片描述

if多分支语句案例

在这里插入图片描述
判断用户输入的是什么文件

在这里插入图片描述
在这里插入图片描述

语法规范

if[之间要有空格
[  ]与判断条件之间也必须有空格
]与;之间不能有空格
以fi结尾,表示if语句的结束

2. 掌握case语句

case语句格式

case 表达式 in
值1|值2)     
操作 ;;      
值3|值4) 
操作 ;;
值5|值6) 
操作 ;;
*)
操作;;
esac

在这里插入图片描述

case语句的语法规范

表达式expr按顺序匹配每个模式,一旦匹配成功,则执行该模式后面的命令块,然后退出case语句
如果没有找到匹配的模式,则执行默认值“*)”后的命令块, “*)”可以没有
模式中可以包含通配符或“|,如果多个模式对应同一个命令块,则使用“|”将各个模式分开
每个模式必须以右圆括号”)”结束
每个命令块必须以双分号(;;)结束,双分号可独占一行,也可放在最后一个命令的后面
以esac结尾,表示case语句的结束

case语句案例

a)掌握case语句案例一:编写服务的启动脚本
在这里插入图片描述

掌握if语句的嵌套使用

格式

if [ 表达式 ]; then
	操作1
else
	if [ 表达式1 ]; then
		操作2
	elif [ 表达式2 ];then
		操作3
	else
		操作4
	fi
fi

if [ 表达式 ]; then
	if [ 表达式1 ]; then
		操作1
	elif [ 表达式2 ];then
		操作2
	else
		操作3
	fi
else
	操作4
fi

if语句嵌套实例

if语句的嵌套实例一:判断file1文件是否存在,再进一步判断是普通文件,目录,链接文件或是其他,显示文件类型判断的结果
在这里插入图片描述

掌握if语句的嵌套实例二

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值