Shell脚本基础从头开始(七)── shell的流程控制

前言

前面我们已经学习了shell的条件测试,回忆一下,有针对文件状态的测试,有针对整数的测试以及字符串的测试,还有逻辑测试,其实条件测试主要就是用在程序的流程控制,今天我们就来学习怎么使用条件测试来控制程序的执行流程。

shell流程控制

if 语句

单条件 if 语句

基本语法:

if 条件成立(条件测试)
then
	做什么事(需要执行的程序)
else 
	做什么事(需要执行的程序)
fi

其实程序语句很多时候和我们的自然语句很像,比如说if语句要表达的意思就是如果怎么就怎么样,否怎怎么样,例如,如果(if) 明天天晴(条件表达式成立),那么(then)我就去钓鱼(就做什么事),否则(else)我就待在家里看电影(做什么事)。发现了么,程序语言想要表达的就是和我们自然语言一样的意思,因为程序语言是写给人看的。下面我们把上面的案例翻译成shell命令。

#!/bin/bash
# if 语句例子
tomorrow=fineDay
if [ $tomorrow = "fineDay" ]
then
	echo "我就去钓鱼!"
else
	echo "我待在家看电影!"
fi	

当然 if 语句也可以没有else,表示如果满足条件我就做某事,否则什么也不做。

#!/bin/bash
# if 语句例子
tomorrow=fineDay
if [ $tomorrow = "fineDay" ]
then
	echo "我就去钓鱼!"
fi

if语句的语义比较简单,如果怎么就干什么,否则就做别的。相对于简单 if 语句,还有多条件 if 语句,它可以针对多种情况作出不同的选择。

多条件 if 语句

如果理解了上面的简单 if 语句,那么理解这个多条件 if 语句也就没什么难的了,我们直接看一个例子。

#!/bin/bash

echo "请输入成绩:"
read score

if [[ $score -lt 60 ]]; then
	echo "该学生成绩不及格!"
elif [[ $score -lt 70 ]]; then
	echo "该学生成绩及格!"
elif [[ $score -lt 80 ]]; then
	echo "该学生成绩良好!"
elif [[ $score -lt 90 ]]; then
	echo "该学生成绩优秀!"
else
	echo "学霸驾到!"
fi

if 每次只会选择最多一个分支执行。

case 语句

case 语句能够完成的作用和 if 语句类似,但是二者也有区别,if 语句可以处理 范围类的条件判断,例如 成绩大于60小于等于70,而 case 语句则适合处理有有限范围的条件判断。例如,如果问今天星期几,那么回答一定是星期一到星期日七个值之间的一个。
基本语法:

case 待判断的变量 in
    当变量值为这个时) 
        执行这里的语句
        ;;
    当变量值为这个时) 
        执行这里的语句
        ;;
    *)
        以上条件都不满足时执行这里
        ;;
 esac(case 语句的结束标识符,类似if语句的结束标识符是fi)       

看个case语句的例子

#!/bin/bash

# case 语句

# date 命令会输出日期
# +%w 表示格式化这个日期,输出星期几
week=`date +%w`

case $week in
    1) 
        echo "今天是周一"
        ;;
    2) 
        echo "今天是周二"
        ;;
    3) 
        echo "今天是周三"
        ;;
	4) 
        echo "今天是周四"
        ;;
    5) 
        echo "今天是周五"
        ;;      
    *)
        echo "今天周末"
        ;;
esac

好了,今天的内容就到这里了,通过今天的学习,我们已经可以实现一些简单的shell程序了。我们下节见!

系列传送门如下:
Shell脚本基础从头开始(一)── 几个linux实操技巧
Shell脚本基础从头开始(二)── 输出重定向
Shell脚本基础从头开始(三)── linux的权限管理
Shell脚本基础从头开始(四)── 第一个shell脚本
Shell脚本基础从头开始(五)── shell的输入输出
Shell脚本基础从头开始(六) ── shell条件测试
Shell脚本基础从头开始(八)── shell的循环语句
Shell脚本基础从头开始(九)── shell的循环语句控制
Shell脚本基础从头开始(十)── shell的文本过滤
Shell脚本基础从头开始(十一)── shell的文本过滤(二)
Shell脚本基础从头开始(十二)── 制作一个字符菜单
Shell脚本基础从头开始(完结篇)── 利用shell编写监控脚本以及shell操作数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不务正业的攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值