玩转Bash脚本:选择结构之case

总第5篇

之前,我们谈到了if。这次我们来谈另一种选择结构——case。

case与if

if用于选择的条件,不是很多的情况,如果选择的条件太多,一系列的if,elif,,也是醉了。没错,case在bash中的地位,和switch在C中的地位一样。但是用法可大有不同。

代码块

任何语言都有代码块的概念,C语言中的花括号{ },python中的冒号和缩进。bash中的代码块风格不是很统一。但是在选择结构中是相同的——反语。if结构使用if...fi标识一个代码块的作用域,而case也是用case...esac表示块作用域的。。

基本结构

看例子echo.sh:

#!/bin/bash
str="is good "
read -p "你喜欢什么颜色:" color
case $color in
    red) echo -e "\e[1;31m$color $str \e[0m";;
    green) echo -e "\e[1;32m$color $str \e[0m";;
    yellow) echo -e "\e[1;33m$color $str \e[0m";;
    blue) echo -e "\e[1;34m$color $str \e[0m";;
    *) echo -e "\e[1;30m这是什么颜色?\e[0m";;
esac
这段代码,就是根据你的输入来显示不同颜色的文本。关于echo语句的写法,这里不细说,每句分别设置了不同的文本颜色。重点去看一下这个结构。

把变量color的值,依次和下面右括号里的值做比较,如果相同,就执行后面的语句。

来运行一下

两个分号;;

注意每个条件末尾都是两个分号。这很好理解,就像C语言的switch里面每个case都经常会有一个break一样。因为每个条件满足的时候,需要执行的语句可能不止一句。而在bash中多个语句在一行是用一个分号间隔的。这样两个分号就表示着语句结束,另外加一个空语句,也就是说要执行的语句都完成了。

与c语言的switch不同的是,c语言中每个条件(case语句)后面不一定都要有break,如果没有break,则继续执行下面的条件的语句。如果你想像c语言那样多个条件共用一套语句,怎么办呢?请继续阅读。

分号扭号;&

所谓扭号,就是And符号——&,我觉得叫扭号更简洁。。看一段C代码&#

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

果冻虾仁

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

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

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

打赏作者

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

抵扣说明:

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

余额充值