在Bash中使用Shell脚本CASE Switches

在bash shell编程的情况是一个大的呈梯形增加 elif(Else IF) 非常有用的。例如,在任何情况下我们使用多if..elif语句中,我们可以很容易地替换它,如下...esac 声明 在bash shell中的 case语句都开始使用关键字的情况下 ,用 esac 结束。
  case $VARIABLE  in
	pattern1)
		<program code here>
		;;
	pattern2)
		<program code here>
	    ;;
	pattern10)
		<program code here>
		;;
	*)
		<program code here>
	    ;;
  esac
在上述语法  $VARIABLE 被相匹配到的代码块将被执行。 所有程序代码必须以   ;; 终止 。 请在下面找到一些例子使用的情况下... ESAC语句。

1. 检查输入号码

这是非常简单和case语句的有意义的例子。在这个示例脚本将采取单个字符的输入和打印相匹配的英文单词。如果你输入任何非数字字符或多个数字,它会显示“没有一个单一的数字字符!”。
#!/bin/sh

read -p "Enter a numeric Character [0-9] " NUMBER

case $NUMBER in
        0) echo "Zero";;
	1) echo "One" ;;
	2) echo "Two" ;;
	3) echo "Three" ;;
	4) echo "Four" ;;
	5) echo "Five" ;;
	6) echo "Six" ;;
	7) echo "Seven" ;;
	8) echo "Eight" ;;
	9) echo "Nine" ;;
	*) echo "Not a single numeric character!" ;;
esac

2. 使用通配符模式

case语句也让像模式使用通配符 - (定义范围),*(匹配任何)| (定义多个模式)等。
#!/bin/sh

read -p "Enter any alphanumeric character :" CHAR

case $CHAR in
    [0-9]*)
        echo "Input is a digit!"
        ;;

    [a-z]*|[A-Z]*)
        echo "Input is a character!"
        ;;

    *)
        echo "Input is a non alphanumeric character"
        ;;
esac

3. 使用初始化脚本

如果你曾经编辑过的启动脚本,你将看到,大多数的init脚本的使用情况报表运行如启动命令,停止等。
case "$1" in
        start)
            start
            ;;

        stop)
            stop
            ;;

        status)
            status myservice
            ;;

        restart)
            stop
            start
            ;;

        *)
            echo "Use command: service myservice {start|stop|restart|status}"
            exit 1
esac
感谢您阅读此文章。我们将在这里尽快推出更多的例子。
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏