二、shell编程之条件语句

二、shell编程之条件语句

一、Test

测试特定的表达式是否成立,当条件成立,测试语句的返回值为0,否则为其他数值

格式1:test条件表达式

格式2:[ 条件表达式 ]

(注意[]空格,否则会失败)

测试 是否成功使用返回值

[ 操作符 文件或目录 ]

文件测试

常用选项

操作符 含义

-d: 测试是否为目录(Directory)

-e: 测试目录或文件是否存在(Exist)

-a: 测试目录或文件是否存在(Exist)

-f: 测试是否为文件(File)

-r: 测试当前用户是否有权限读取(Read)

-w: 测试当前用户是否有权限写入(Write)

-x: 测试当前用户是否有权限执行(eXcute)

-L: 测试是否为软连接文件

比较整数数值

[ 整数1 操作符 整数2 ] 公式

  • -eq:第一个数等于(Equal)第二个数
  • -ne:第一个数不等于(Not Equal)第二个数
  • -gt:第一个数大于(Greater Than)第二个数
  • -lt:第一个数小于(Lesser Than)第二个数
  • -le:第一个数小于或等于(Lesser or Equal)第二个数
  • -ge:第一个数大于或等于(Greater or Equal)第二个数

字符串比较

常用的测试操作符

  • =:字符串内容相同
  • !=:字符串内容不同,! 号表示相反的意思
  • -z:字符串内容为空
  • -n: 字符是否存在

格式

[ 字符串1 = 字符串2 ] 是否相同

[ 字符串1 != 字符串2 ] 是否不相同

[ -z 字符串 ] 是否为空

[ -n 字符串 ] 字符是否存在

逻辑测试(短路运算)

格式1:[ 表达式1 ] 操作符 [ 表达式2 ] …

格式2:命令1 操作符 命令2 …

常见条件

  • -a或&&:逻辑与,“而且”的意思全真才为真
  • -o或||:逻辑或,“或者”的意思一真即为真
  • !:逻辑否

二、if语法

分支结构

单分支

if 判断条件;

then   条件为真的分支代码

fi
双分支

if 判断条件; then
 条件为真的分支代码

else
 条件为假的分支代码

fi
多分支

if 判断条件1; then
 条件1为真的分支代码

elif 判断条件2; then
 条件2为真的分支代码

elif 判断条件3; then
 条件3为真的分支代码

...
else
 以上条件都为假的分支代码

fi

判断考试成绩

#!/bin/bash
read -p "请输入你的考试分数:" grade

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

case语句结构

格式:
case 变量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
....
*)
默认命令序列
esac
case支持glob风格的通配符:
* 任意长度任意字符
? 任意单个字符
[] 指定范围内的任意单个字符
|   或者,如: a|b

例:不管输入大小写字母,都能输出yes或no

#!/bin/bash
read -p "请输入yes or no:" i
case $i in
[Yy]|[Yy][Ee][Ss])
echo "您输入的yes通过检测"
;;
[Nn]|[Nn][Oo])
echo "您输入的no通过检测"
;;
*)
echo "无法识别"
;;
esac

image-20211206143206068
image-20211206143322289

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值