shell脚本之条件语句


一、测试

1.1 test 命令

test 测试文件的表达式 是否成立

格式1:test  条件表达式
格式2:[  条件表达式  ]       #注意左右空格

请添加图片描述
请添加图片描述

1.1.1 操作符

操作符注释
-d测试是否为目录(Directory)
-e测试目录或文件是否存在(Exist)
-a测试目录或文件是否存在(Exist)
-f测试是否为文件(File)
-r测试当前用户是否有权限读取(Read)
-w测试当前用户是否有权限写入(Write)
-x测试当前用户是否有权限执行(eXcute)
-L测试是否为软连接文件

请添加图片描述
请添加图片描述

1.2 整数值比较

公式 : [  整数1  操作符  整数2  ] 
操作符注释
-eq第一个数等于(Equal)第二个数
-ne第一个数不等于(Not Equal)第二个数
-gt第一个数大于(Greater Than)第二个数
-lt第一个数小于(Lesser Than)第二个数
-le第一个数小于或等于(Lesser or Equal)第二个数
-ge第一个数大于或等于(Greater or Equal)第二个数

请添加图片描述

1.3 字符串比较

公式 : [  字符串1  操作符  字符串2  ] 
操作符注释
=字符串内容相同
!=字符串内容不同,! 号表示相反的意思
-z字符串内容为空
-n字符是否存在

请添加图片描述

1.4 逻辑测试

格式1:[  表达式1  ]  操作符  [  表达式2  ]  ... 
格式2:命令1  操作符  命令2  ... 
操作符注释
-a 或 &&逻辑与,“而且”的意思全真才为真
-o 或 ||逻辑或,“或者”的意思一真即为真
!逻辑否

二、if语句的结构

2.1 单分支结构

请添加图片描述

格式:
if  [ 条件表达式 ]
then
echo “命令序列”
fi
#判断是否为超级管理员
#!/bin/bash
if [ "$USER" != "root" ]
then
echo "非管理员用户无权限操作"
fi

请添加图片描述

2.2 双分支结构

请添加图片描述

格式:
if  [ 条件表达式 ]
then
echo “命令序列”
else
echo “命令序列”
fi
#!/bin/bash
ip=192.168.56.1
ping -c3 $ip >>/dev/null
if [ $? = 0 ]
then
echo "$ip 该主机在线"
else
echo "$ip 该主机不在线"
fi

请添加图片描述

2.3 多分支结构

请添加图片描述

格式:
if  [ 条件表达式 ]
then
echo “命令序列”
elif
else
echo “命令序列”
fi
#!/bin/bash
read -p "请输入你的考试分数(0~100):

if [ $grade -ge 85 ]&& [ $grade -le 100 ]
then
echo "你的成绩为$grade"
echo "你的成绩为优秀"

elif [ $grade -ge 70 ]&&[ $grade -le 84 ]
then
echo "你的成绩为$grade"
echo "你的成绩为良好"

elif
[ $grade -ge 60 ]&&[ $grade -le 69 ]
then
echo "你的成绩为$grade"
echo "你的成绩为合格" 

else
echo "你的成绩为$grade"
echo "你的成绩不合格"
fi

请添加图片描述

2.4 case

格式:
case 变量引用 in
PAT1)
 分支1
 ;;
PAT2)
 分支2
 ;;
...
*)
 默认分支
 ;;
esac
#!/bin/bash
read -p "请输入你的分数(0~100):"

case $score in
100)
echo "$score 你太优秀了"
;;
[89][0-9])
echo "$score 表现不错"
;;
[67][0-9])
echo "$score 你及格了"
;;
[0-9]|[1-5][0-9])
echo "$score 你不及格"
;;
*)
echo "输入有误"
esac

请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值