case分支属于匹配执行的方式,它针对指定的变量预先设置一个可能的取值,判断该变量的实际取值是否与预设的某一个值相匹配,如果匹配上了,就执行相应的一组操作,如果没有任何值能够匹配,就执行预先设置的默认操作。

语法:

case 变量值 in
模式1)
       命令序列1 ;;
模式2)
       命令序列2 ;;

*)
       默认命令序列
esac

注意:

1.在命令序列后一定要以 ;; 结束,最后一个命令序列也可不写。

2.在case分支写完之后,要以esac结束。

例子:

通过位置变量来获取赋值

[root@gameserver1 shell]# vim case_test.sh

#!/bin/bash
case $1 in #用位置变量获取值
start)
echo "start";;
stop)
echo "stop";;
other)
echo "other";;
*) #默认命令序列
echo "默认命令序列"
esac

执行脚本,位置参数赋值start

[root@gameserver1 shell]# ./case_test.sh start
start #输出start

执行脚本,位置参数赋值stop

[root@gameserver1 shell]# ./case_test.sh stop
stop

执行脚本,位置参数赋值restart  (case中没有定义对应的restart模式)

[root@gameserver1 shell]# ./case_test.sh restart
默认命令序列 #当赋值case中没有定义的模式时,则输出的 *)默认命令序列

执行脚本,位置参数不赋值

[root@gameserver1 shell]# ./case_test.sh
默认命令序列 #输出默认序列

总结:

当执行脚本时,变量值==模式,则执行对应模式下的命令序列。

当执行脚本时,变量值不存在case模式中,则执行默认命令序列。

当执行脚本时,没有指定变量的值,则执行默认命令序列。

常用于菜单选择,比如程序的启动,停止,重启,更新等,或者其他需要根据选择来执行对应选项下的命令的场景。

shell 之 case。。。esac多分支选择的更多相关文章

  1. Linux Shell系列教程之(十三)Shell分支语句case … esac教程

    本文是Linux Shell系列教程的第(十三)篇,更多Linux Shell教程请看:Linux Shell系列教程 分支语句非常实用,基本上高级语言都支持分支语句(python 没有),大多数都使 ...

  2. shell 编程之 if...else case...esac

    shell的条件判断语句有三种 if...fi  语句 if...else...fi  语句 if...elif...fi  语句 例子: a=10; b=20; if [ $a -gt %b ] t ...

  3. Shell case esac语句

    case ... esac 与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构. case 语句匹配一个值或一个模式,如果匹配成功,执行相匹配的命令.case语句格式如下: ...

  4. 【Shell脚本学习17】Shell case esac语句

    case ... esac 与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构. case 语句匹配一个值或一个模式,如果匹配成功,执行相匹配的命令.case语句格式如下: ...

  5. shell编程 条件判断式----利用 case ..... esac 判断

    条件判断式----利用 case ..... esac 判断 case  $变量名称 in   <==关键词为 case ,还有变量前有钱字号 "第一个变量内容")   &l ...

  6. Shell case esac语句【转】

    本文转载自:http://c.biancheng.net/cpp/view/7006.html C语言中文网推出辅导班啦,包括「C语言辅导班.C++辅导班.算法/数据结构辅导班」,全部都是一对一教学: ...

  7. shell的case语句简述(shell的流控制)

    shell流控制:http://www.cnblogs.com/yunjiaofeifei/archive/2012/06/12/2546208.html 1.if then else 语句 if t ...

  8. Linux Shell编程case语句

    http://blog.csdn.net/dreamtdp/article/details/8048720 case语句适用于需要进行多重分支的应用情况. case分支语句的格式如下: case $变 ...

  9. shell的case脚本的简单入门

    shell的case脚本的简单入门 示例1: #/bin/bash a=$ case "$a" in ") echo 'hell 2';; ") echo 'h ...

随机推荐

  1. Pandas Series 对象的loc与iloc区别

    import pandas as pd temp = pd.Series([,,,,]) loc用法: temp.loc[:] 0 1 1 2 2 3 3 4 # 输出索引为0-3的值(基于索引) t ...

  2. 推荐系统之矩阵分解(MF)

    一.矩阵分解 1.案例 我们都熟知在一些软件中常常有评分系统,但并不是所有的用户user人都会对项目item进行评分,因此评分系统所收集到的用户评分信息必然是不完整的矩阵.那如何跟据这个不完整矩阵中已 ...

  3. CLOUD列表字段数据汇总

  4. 65)PHP,跨脚本周期存变量(会话技术)

    (1)写入变量,常量,全局变量都不行, (2)试一下用文件存那个变量: 但是有一个问题:就是文件,只要一个用登陆成功了,其余的所有用户都可以直接用那个登录许可的标志了,然后只要用户名和密码登录成功,那 ...

  5. org.apache.http.NoHttpResponseException

    org.apache.http.NoHttpResponseException 异常: org.apache.http.NoHttpResponseException: The target serv ...

  6. [LC] 485. Max Consecutive Ones

    Given a binary array, find the maximum number of consecutive 1s in this array. Example 1: Input: [1, ...

  7. openpyxl传入表名时不要使用默认的sheet表名

    openpyxl传入表名时不要使用默认的sheet表名,会报错 处理:改一下表名即可

  8. win10安装3DSMAX失败,怎么强力卸载删除注册表并重新安装

    一些搞设计的朋友在win10系统下安装3DSMAX失败或提示已安装,也有时候想重新安装3DSMAX的时候会出现本电脑windows系统已安装3DSMAX,你要是不留意直接安装3DSMAX,只会安装3D ...

  9. notepad++下载及安装

    下载notepad++: 官网 安装:https://jingyan.baidu.com/article/154b463109921828cb8f4151.html 如果下载的64位没有插件管理器,单 ...

  10. (警告)不要轻易删除libc.so.6,以及误删恢复

    网上有很多帖子介绍升级libc.so.6库的帖子,这里存在巨大的坑: 如: Linux/CentOS 升级C基本运行库CLIBC的注意事项(当想解决GLIBC_2.x找不到的编译问题) 里边都会有这样 ...