欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

03 shell编程之case语句与函数

程序员文章站 2022-07-27 22:14:00
本文所有内容均来自当年博主当年学习笔记,若有不足欢迎指正 Shell编程之case语句与函数 学习目标: 掌握case语句编程 掌握shell函数的使用 目录结构: Case语句 Case语句的作用 l 使用case语句改写多分支可以使脚本结构更加清晰,层次分明 l 针对变量不同取值,执行不同的命令 ......

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

Shell编程之case语句与函数

学习目标:

掌握case语句编程

掌握shell函数的使用

目录结构:

 03 shell编程之case语句与函数

 

 

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

……

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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