3天玩转shell--3.流程控制之case

简介: 本文将通过shell代码示例,简单通俗的讲解shell。通过执行代码和运行结果反向掌握shell编程方法。准备一台低配的阿里云ECS Linux环境,跟着教程走起,本文比较适合shell小白。

一、这节课掌握如下几个知识点

【1】掌握case的写法及使用场景

二、通过代码讲解

该部分主要通过两种场景来讲解case的用法、场景一主要用在启动脚步、或者是一些工具类的脚本,场景二是针对一些网段、不同的字符串判断的情况进行处理。

场景一 执行:bash 3.sh init。通过传递不同的参数执行不同的函数

#!/bin/bash
#3.sh v1
#create by maoge 
PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"
export LANG=zh_CN.UTF-8
export PATH
 
InitFunc(){
   echo "Run init"
}

StartFunc(){
   echo "Run Start"
}

StopFunc(){
   echo "Run Stop"
}

DefaultFunc(){
   echo "Run Default"
}

case $1 in
     init)
       InitFunc;; #
     start)
       StartFunc;;
     stop)
       StopFunc;;
     *)
       DefaultFunc;;
esac

场景二,修改代码中的不同IP网段,然后通过读取不同的IP,判断所属的机房。执行:bash 3.1.sh

#!/bin/bash
#3.1.sh v1
#create by maoge 
PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"
export LANG=zh_CN.UTF-8
export PATH
serverIp=$(ifconfig | awk '/inet /{sub(/addr:/,"",$2);print $2}'|grep -v "127.0.0.1"|head -1) #读取本机IP
case $serverIp in
        192.168.11.*)  #判断IP是否属于11网段
        echo "电信机房"
        ;;
        192.168.23[0-1].*|192.168.22[8-9].*)
        idc="联通机房"
        ;;
        *)
        echo "Unknown idc"  #其他情况下就输出unknown idc,然后退出。
        exit 1
        ;;
esac
相关文章
|
4月前
|
Shell Windows Perl
Shell编程中的条件判断与流程控制
Shell编程中的条件判断与流程控制
55 0
|
3月前
|
Java 大数据 Shell
Shell基础学习---2、运算符、条件判断、流程控制(第一天学习)
大数据开发学习 Shell基础学习---2、运算符、条件判断、流程控制
|
6月前
|
Shell Linux
|
6月前
|
Shell Linux
|
21天前
|
Shell
shell学习(六) 【case多条件分支语句】
shell学习(六) 【case多条件分支语句】
13 1
|
1月前
|
监控 Shell 持续交付
利用Shell脚本自动化员工电脑监管软件的部署流程
在企业管理中,对员工的电脑活动进行监管是一项重要任务。而为了实现这一目标,部署监管软件是必不可少的。本文将介绍如何利用Shell脚本来自动化部署员工电脑监管软件的流程。我们将演示如何使用Shell脚本来自动下载、安装和配置监管软件,并且在部署完成后自动启动服务。
151 4
|
2月前
|
Shell
Shell脚本中的`case`语句
Shell脚本中的`case`语句
34 5
|
2月前
|
Java Shell Linux
Linux下的Shell基础——流程控制(三)
Linux下的Shell基础——流程控制(三)
37 0
Linux下的Shell基础——流程控制(三)
|
2月前
|
Shell
Shell流程控制
Shell流程控制
17 3
|
4月前
|
Shell Linux iOS开发
Shell的`case`语句
Shell的`case`语句
26 2