介绍Bash Case 语句

介绍Bash Case 语句

本文介绍bash中case语句的语法。case语句通常用于简化多种不同选择的复杂条件场景,使用case代替if使得脚本代码更易读、易维护。

case语句与C语言、javasc中的switch语句类似。与C不同的是,一旦Bash中case语句匹配了一个条件并执行语句,则不再继续搜索后续匹配条件,相当于自动增加了break语句。

1. case语句语法

语法结构如下:

case EXPRESSION in

  PATTERN_1)
    STATEMENTS
    ;;

  PATTERN_2)
    STATEMENTS
    ;;

  PATTERN_N)
    STATEMENTS
    ;;

  *)
    STATEMENTS
    ;;
esac
  • 每个case语句以case关键字开头,后面跟上评估表达式和in关键字。最后以esac关键字结束。

  • 可以使用多个模式,使用 | 分隔符进行分割,)操作符表示模式列表结束。

  • 模式及其相关命令称为子句,每个子句比喻使用;;符号作为结束符。

  • 第一个匹配的模式对应命令被执行。

  • 通常习惯使用通配符,星号*作为缺省情况,该模式总是匹配。

  • 没有模式匹配时,返回状态为0。否则返会状态是执行命令的退出状态。

2. 示例

下面示例在bash脚本中使用case语句,打印给定国家的官方语言:

#!/bin/bash

echo -n "enter the name of a country: "
read country

echo -n "the official language of $country is "

case $country in 
    chinese) 
        echo -n "Chinese";;
    japanese)
        echo -n "Japanese";;
    uk)
        echo -n "English";;
    *)
    echo -n "unknown";;
esac

echo -e '\n'

保持脚本为languages.sh并执行:

bash languages.sh

脚本程序首先提示输入国家,如果输入uk,则匹配第三个模式,则对应echo命令被执行。脚本输出为:

enter the name of a country: uk
the official language of uk is English

如果你输入不匹配的国家,则缺省子句被执行:

enter the name of a country: usa
the official language of usa is unknown

3. 总结

现在大概应该理解了bash中case语句了吧。通常脚本中用于检验命令行传入的参数。如不同参数表示开始、停止或重启服务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值