Linux Shell编程case语句-yellowcong

本文介绍了 Linux Shell 脚本中 case 语句的基本用法及实例,包括单条件和多条件匹配,并展示了如何处理大小写敏感问题,以及如何使用 exit 代码区分正常与异常退出。

在Linux系统中,我们常常会用到java version等类似的命令,这些都是基于case的语法来做的,下面我们简单的走几个案例来说明。说实话这个case in语句用到的地方挺多的,在这这个case语句中,需要注意一下几点,1、注意exit 0exit 1表示的意义;2、大小写匹配的两种解决方案

语法结构

语法结构,我就用下面的图说明一下了,其中 exit 1 和 exit0 不是语法结构里面的

这里写图片描述

案例1

case 一个条件

在这个case的案例中,我添加了exit 0 和exit 1,这个用来表示程序是否是正常的退出,退出的值,可以在执行完命令后,通过echo $? 来获取到

#!/bin/bash

#判断,第一个输入的参数是啥
case "$1" in

#当是start的轻卡un个
start)
        echo "start"
        ;;
#当时stop命令的情况
stop)
        echo "stop"
        ;;
#默认输入命令,不做操作的情况
*)

        echo "doubi input" $1
        #非正常运行导致退出程序;
        exit 1
        ;;
esac

#正常退出
exit 0

这里写图片描述

执行

执行命令,发现,在执行后,发现如果走默认的*)这个里面,退出获取的结果code是1 ,这就可以让后面执行的脚本来判断,你是否正常执行了前面的一个脚本。

这里写图片描述

案例2

case 多个条件

#!/bin/bash

case "$1" in
start|begin)
        echo "start program"
        ;;
#stop xx
stop|end)
        echo "stop program"
        ;;
#default
*)
        echo "./demo.sh start|begin "
        echo "doubi input" $1
        #非正常运行导致退出程序;
        exit 1
        ;;
esac

#正常退出
exit 0

case里面判断多个条件
这里写图片描述

执行结果

可以发现end|stop 是一个命令,start和begin是一个命令

这里写图片描述

大小写字符判断

方法1

1、通过加入export LC_ALL=C 来解决大小写的问题
2、通过[A-Z]改为[[:upper:]],[a-z]改为[[:lower:]]

export LC_ALL=C

case "$1" in
[a-z])
        echo "小写"
        ;;
#stop xx
[A-Z])
        echo "大写 stop program"
        ;;
[0-9])
        echo "数字"
        ;;
#default
*)
        echo "./demo.sh start|begin "
        echo "doubi input" $1
        #非正常运行导致退出程序;
        exit 1
        ;;
esac

#正常退出
exit 0

这里写图片描述

方法2

可以将大写和小写用

#!/bin/bash
#demo.sh

case "$1" in
[[:lower:]])
        echo "小写"
        ;;
#stop xx
[[:upper:]])
        echo "大写 stop program"
        ;;
[0-9])
        echo "数字"
        ;;
#default
*)
        echo "./demo.sh start|begin "
        echo "doubi input" $1
        #非正常运行导致退出程序;
        exit 1
        ;;
esac

#正常退出
exit 0

这里写图片描述

执行结果

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狂飙的yellowcong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值