case是一种判断的性质,当变量数量确定,用case是一个很好的表现方式。case常见最多的就就是服务的启动脚本了,通过第一个参数来进行确定。
case $变量名称 in
  "参数内容")  \\ 例如   "y"|"Y")
     命令集合
     ;;
  "参数内容")
     命令集合
     ;;
  *)                \\代表其他
     命令集合
     ;;
esac
/path/to/script  patten1 patten2
                    $1     $2
$1 $2 代表脚本执行时后面输入的第一个参数
$# 代表参数的个数
$@  将参数输出
函数在shell脚本中的作用就是将操作重复的命令统一集合起来,便于管理、执行。
   function   fun_name() {
           命令集
   }
  
 例子:这个是在linux系统的服务脚本中截取的部分,用作理解,
check() {
        # Check that we're a privileged user
        [ `id -u` = 0 ] || exit 4
# Check if acpid is executable
        test -x /usr/sbin/acpid || exit 5
}
start() {
check
# Check for kernel support
        [ -f /proc/acpi/event ] || exit 1
echo -n $"Starting acpi daemon: "
        daemon /usr/sbin/acpid
        RETVAL=$?
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/acpid
        echo
        return $RETVAL
}
stop() {
check
echo -n $"Stopping acpi daemon: "
        killproc /usr/sbin/acpid
        RETVAL=$?
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/acpid
        echo
    return $RETVAL
}
restart() {
        stop
        start
}
reload() {
check
trap "" SIGHUP
        action $"Reloading acpi daemon:" killall -HUP acpid
        RETVAL=$?
        return $RETVAL
}

case "$1" in
start)
        start
        ;;
stop)
        stop
        ;;
reload)
        reload
        ;;
force-reload)
        restart
        ;;
restart)
        restart
        ;;
condrestart)
        if [ -f /var/lock/subsys/acpid ]; then
            restart
        fi
        ;;
status)
        status acpid
        RETVAL=$?
        ;;
*)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|reload|force-reload}"
        RETVAL=2
esac

说明:
  创建了check\start\stop\restart\reload的函数,每个函数下面都有各自的命令集合,后面每个符合case选项的每执行一次函数就相当于执行函数内部的命。简化了脚本的结构。

转载于:https://blog.51cto.com/bensonzy/605102

shell之case和function相关推荐

  1. shell编程--case判断

    case基础语法: 格式 case  变量名 in value1) command ;; value2) command ;; *) commond ;; esac 在case程序中,可以在条件中使用 ...

  2. Shell中case判断结构的用法笔记

    Shell中case判断结构的用法 case判断的用法和if/elif/else结构的用法等价,case判断结构也用于多种可能情况下的分支选择. 语法结构如下: case var in var1) c ...

  3. shell脚本—case用法

    shell脚本-case用法 文章目录 shell脚本-case用法 1.什么是case? 2.case使用场景 3.case语法 1.什么是case? case语句和if类似,也是用来判断的,只不过 ...

  4. 理论+实操:shell之case语句与for/while/until循环语句、函数、数组理论讲解-满满的干货

    文章目录 一 : case语句的结构 1.1 case结构 1.2 case执行过程流程图 1.3 case语句应用示例 1.3.1 示例1:击键类型识别 1.3.2 请输入您的成绩判断优良合格不合格 ...

  5. linux sh文件case,Shell脚本case语句简明教程

    Shell case语句为多选择语句.可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令.case语句格式如下: case 值 in 模式1) command1 command2 ...

  6. shell之case和循环语句(case语句的格式与举例)(for循环,while循环until循环语句的详解和continue,break解释, 九九乘法口诀表 ,等腰三角形)

    文章目录 shell编程之case语句与循环语句(for,while) case多分支语句 case语句的实例 使用for循环语句 for语句实例 用循环语句输出1-10的数字的五种办法 计算偶数/奇 ...

  7. Shell基础--- case in语句详解

    <Shell if else>一节的最后给出了一个例子,就是输入一个整数,输出该整数对应的星期几的英文表示,这节我们就用 case in 语句来重写代码,如下所示. #!/bin/bash ...

  8. shell语法 case/esac

    case命令可类比C语言的switch/case语句,esac表示case语句块的结束.C语言的case只能匹配整型或字符型常量表达式,而Shell脚本的case可以匹配字符串和Wildcard,每个 ...

  9. shell编程 case语句

    case语句格式 # vi test.sh : echo "input : " read num echo "the input data is $num" c ...

最新文章

  1. 如何为网页添加小宠物挂件:小老鼠、金鱼等
  2. DCMTK:工作清单数据库测试程序
  3. [BUUCTF-pwn]——bjdctf_2020_router
  4. 关于优酷开放SDK之setOnVideoSizeChangedListener
  5. open,write,read与fopen,fwrite,fread的区别
  6. OpenStack精华问答 | OpenStack是云吗?
  7. 小米为其他手机适配rom_让小米引以为傲的MIUI,为什么不再给其它手机适配了?...
  8. Android面经分享,失业两个月,五一节前拿到offer
  9. 商汤押注AI教育,成立“商汤教育”子品牌
  10. 如何制作一款HTML5 RPG游戏引擎——第五篇,人物人物特效
  11. 综合后端各种类型文件
  12. 检查PHP扩展是否安装成功
  13. linux连接小米随身wifi密码忘记了,小米随身wifi设置教程
  14. MATLAB数字水印处理技术的实现
  15. java 获取vm配置参数_如何获取Java中的Java VM规范?
  16. 结算清单html模板,结算清单样本.xls
  17. 一个老程序员的计算机视觉蹒跚学习之路
  18. 分布式技术原理(一):分布式的三围
  19. 判断英语名词可数和不可数
  20. 英雄联盟7月23日维修服务器,英雄联盟7月23日更新维护到几点结束 7月23日lol10.15版本更新维护结束时间...

热门文章

  1. java概念,Java基础概念
  2. Golang——递归的使用
  3. linux如何标识用户账号和组账号,linux管理用户和组
  4. mysql5.7四字节中文_mysql 字节问题,中文和数字
  5. rocketmq删除topic_RocketMq 快速入门教程
  6. win7安装nodejs 高版本不支持 换低版本
  7. ElasticSearch之Tokenizer 分词器
  8. 机器学习笔记(十六)——EM算法概述
  9. 宠物次元经济专题分析2020
  10. matlab 判断两个矩阵有元素相等_Matlab入门教程 第 1 章 Matlab基础知识之基本运算...