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

……

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

posted @ 2018-06-10 10:40  弹指流沙间  阅读(893)  评论(0编辑  收藏  举报