shell语法之case

简介:

case的语法格式如下:
       case var in
            exp-1) 命令体1 ;;
            exp-2) 命令体2 ;;
                  ...
            *)    命令体 ;;
shell通过计算变量var的值,将其结果依次和运算式exp-1, exp-2等进行比较,直到找到一个匹配的运算式为止。如果找到了匹配项,则执行它下面的命令直到遇到一对分号(;;)为止。  


平时较小用case语句,偶尔用到,所以记录如下:
1> var可以是数字,也可以是字符串,只是在下面的判断运算式exp里区分就行
2> 判断运算式exp可以只是一个数字,或一字符串,也可以是一个运算式如$((a+b)) 其中a,b在上面已赋值,也可以是一个正则表达式
3> *即为当上面的判断运算式都匹配失败时才会执行它的命令体, 该项为可选
4> 一对分号可以跟在命令体最后一语句后,也可以写在命令体结束后的下一空行.作用相同

一段程序如下:
param=$1
a=11
b=12
echo "paramA="$param
case $param in
$((a+b))) echo "NO1"
                param="dog"   ;;
hello)      echo "NO2"
               param="cat";;
10)          echo "NO3"
               param="pig";;
*)            echo "ERROR"
esac
echo "paramB="$param
接下来执行这段程序时,我可以分别带参数10 或 23 或 "hello" 看看结果打印的param的不同. 同时可以把
case......esac 这一段代码放在()中, 再分别执行后观察param的打印情况.在执行()中的代码时shell会创建一新的子进程,所以在子进程中的对param的修改并不会影响到父进程中的变量的值.

http://blog.csdn.net/edei2004/article/details/3693979

相关文章
|
23天前
|
Shell C语言 C++
【Shell 编程指南】shell中的(),{}几种语法用法
【Shell 编程指南】shell中的(),{}几种语法用法
17 0
|
2月前
|
Shell
Shell脚本中的`case`语句
Shell脚本中的`case`语句
33 5
|
8月前
|
Shell
Shell while 语法(: 死循环)
Shell while 语法(: 死循环)
201 0
|
4月前
|
Shell Linux iOS开发
Shell的`case`语句
Shell的`case`语句
26 2
|
5月前
|
Shell Linux C++
Linux之shell语法
Linux之shell语法
53 0
|
7月前
|
Shell
shell编程之条件语句与case语句
shell编程之条件语句与case语句
39 2
|
7月前
|
Shell 索引
shell语法--数组相关
shell语法--数组相关
34 0
|
8月前
|
应用服务中间件 网络安全 nginx
shell&case语句
流程控制语句-case用来实现程序流程的选择、循环等进行控制,类似于if,但更具准确性一般用于服务的启动、停止脚本
|
8月前
|
运维 Shell 应用服务中间件
【运维知识高级篇】超详细的Shell编程讲解3(if判断+Shell菜单+case流程判断+批量创建删除用户+猜数字小游戏)
【运维知识高级篇】超详细的Shell编程讲解3(if判断+Shell菜单+case流程判断+批量创建删除用户+猜数字小游戏)
114 1
|
8月前
|
Shell
Shell VSCode 基本开发插件(语法提示、错误检测、格式化、运行代码)
Shell VSCode 基本开发插件(语法提示、错误检测、格式化、运行代码)
420 0