• 03 shell编程之case语句与函数


    本文所有内容均来自当年博主当年学习笔记,若有不足欢迎指正

    Shell编程之case语句与函数

    学习目标:

    掌握case语句编程

    掌握shell函数的使用

    目录结构:

     

    Case语句

    Case语句的作用

    l  使用case语句改写多分支可以使脚本结构更加清晰,层次分明

    l  针对变量不同取值,执行不同的命令序列

    Case语句的结构

    case 变量值 in

    模式1)

           命令序列1

           ;;

    模式2)

           命令序列2

           ;;

    *)

           默认命令序列

    csac

    case变量=模式1 ?是,则执行命令序列1,否,则判断变量=模式2 ?是,则执行命令序列2,否,则判断变量=模式3 ?是,则执行命令序列3,否,则执行默认命令序列。

    实例:

    l  击键类型识别脚本,判断输入的是字母还是数字还是其他字符

    [root@poll ~]# vi a.sh

    #!/bin/bash

    #this is zifupanduan

    read -p "请输入一个字符:" key

    case $key in

    [a-z]|[A-Z])

            echo "您输入的是字母。"

            ;;

    [0-9])

            echo "您输入的是数字"

            ;;

    [/]|[?]|[,])

            echo "您输入的是$key"

            ;;

    *)

            echo "您输入的是其他字符"

    esac

    shell函数

    l  将命令序列按格式写在一起

    l  可方便重复使用命令序列

    l  Shell函数定义

    [function] 函数名(){

    命令序列

    [return x]

    }

    l  调用函数的方法

    [root@poll ~]# vi sum.sh

    #!/bin/bash

    #this is SUM

    SUM(){

    echo "这是一个求和运算"

    read -p "请输入第一个数:" A

    read -p "请输入第二个数:" B

    echo "你输入的两个数分别为:$A $B"

    SUM=$(($A+$B))

    echo "两个数的和为:$SUM"

    #return $(($A+$B))

    }

    SUM

    #echo "两个数的和为:$?"

    l  Linux系统中有很多服务器启动脚本

    定义了丰富的shell函数

    嵌套了各种语句,如if语句等

    可参考其编写的服务器启动脚本

    [root@poll scripts]# vi /etc/init.d/network

    ……

    if [ -f /etc/sysconfig/pcmcia ]; then

        . /etc/sysconfig/pcmcia

    fi

     

     

    # Check that networking is up.

    [ "${NETWORKING}" = "no" ] && exit 6

     

    # if the ip configuration utility isn't around we can't function.

    [ -x /sbin/ip ] || exit 1

     

     

    CWD=$(pwd)

    cd /etc/sysconfig/network-scripts

    ……

    本章初步结束,下一节讲循环语句

  • 相关阅读:
    HttpRunner3.X
    基于C++的ByteBuf封装
    关于matlab的配色
    关于样本方差的无偏估计
    使用Python求解Nonogram
    菜鸡的一些力扣记录
    LeetCode链表练习
    C语言中的链表
    Python中的链表简介
    Nebula Graph 源码解读系列 | Vol.03 Planner 的实现
  • 原文地址:https://www.cnblogs.com/tzlsj/p/9162443.html
Copyright © 2020-2023  润新知