[shell]流程控制----case语句

it2022-05-05  132

Shell case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。case语句格式如下:

case 值 in 模式1) command1 command2 ... commandN ;; 模式2) command1 command2 ... commandN ;; esac

case工作方式如上所示。取值后面必须为单词in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。

取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令。 例:

g2_user=0 g2_userdebug=0 g2=0 case $1 in g2_user) g2_user=1 ;; g2_userdebug) g2_userdebug=1 ;; g2) g2=1 ;; *) echo "Wrong param for compile module!" echo "The param can be one of below:" echo "g2_user;g2_userdebug;g2" exit 1 esac

上面的脚本会取脚本执行时所输入的第一个参数的值,与每一种模式进行匹配: 输入不同的内容,会有不同的结果,例如:

输入 g2_user: g2_user=1(g2_user变量被赋值1,根据变量值可做后续脚本的处理) 输入 g2-user: 界面echo的结果:

Wrong param for compile module! The param can be one of below: g2_user;g2_userdebug;g2

并且脚本异常退出!

转载于:https://www.cnblogs.com/wucaiyun1/p/11009964.html


最新回复(0)