Menu Close

Linux平台下Shell脚本case … esac语句

您可以使用多个if … elif语句执行多路分支。 但是,这并不总是最好的解决方案,尤其是当所有分支都取决于单个变量的值时。

Shell支持case … esac语句,该语句恰好可以处理这种情况,并且比重复执行if … elif语句更有效。

语法:

case 值 in
   模式1)
      Statement(s) to be executed if pattern1 matches
      ;;
   模式2)
      Statement(s) to be executed if pattern2 matches
      ;;
  模式3)
      Statement(s) to be executed if pattern3 matches
      ;;
   *)
     Default condition to be executed
     ;;
esac

实例

该实例将字符串字与每个模式进行比较,直到找到匹配项。 执行匹配模式之后的语句。 如果未找到匹配项,则case语句将不执行任何操作而退出。

模式数量没有最高值,但最小数量为1。

当语句部分执行时,命令;; 指示程序流应跳到整个case语句的末尾。 这类似于C编程语言中的中断。


#!/bin/sh

FRUIT="kiwi"

case "$FRUIT" in
   "apple") echo "Apple pie is quite tasty." 
   ;;
   "banana") echo "I like banana nut bread." 
   ;;
   "kiwi") echo "New Zealand is famous for kiwi." 
   ;;
esac

执行结果:

New Zealand is famous for kiwi.

 

 

Posted in Linux

发表评论

相关链接