在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
感谢您阅读此文章。我们将在这里尽快推出更多的例子。