linux shell case语法(case语句)
文章目录
-
- case语法
case语法
在 Linux Shell 中,case 语句用于测试一个变量与多个模式(pattern)之间的匹配情况。它类似于 switch 语句,但是比 switch 语句更加灵活。
case 语法如下:
case 变量 in
模式1)命令1;;
模式2)命令2;;
*)默认命令;;
esac
其中,变量是要测试的变量,模式是要匹配的模式,命令是与模式匹配时要执行的命令。每个模式后面必须有两个分号(;;
)来表示命令结束。最后一个模式可以使用星号(*
)来表示默认情况。
下面是一个例子:
#!/bin/bashecho "请输入一个数字:"
read numcase $num in1)echo "你输入了1";;2)echo "你输入了2";;3)echo "你输入了3";;*)echo "你输入了其他数字";;
esac
在这个例子中,我们首先提示用户输入一个数字,然后使用 case 语句来测试这个数字与模式的匹配情况。如果用户输入的数字是 1,那么就会执行第一个命令;如果是 2,就会执行第二个命令;如果是 3,就会执行第三个命令;如果是其他数字,就会执行默认命令。
需要注意的是,case 语句中的模式可以使用通配符来匹配多个值。例如,使用问号(?
)来匹配单个字符,使用星号(*
)来匹配任意数量的字符。下面是一个例子:
#!/bin/bash
echo"请输入一个字符串:"
read str
case $str in
[a-z])echo"你输入了一个小写字母";;
[A-Z])echo"你输入了一个大写字母";;
[0-9])echo"你输入了一个数字";;
?)echo"你输入了一个单个字符";;
*)echo"你输入了一个字符串";;
esac
在这个例子中,我们使用了方括号([]
)来定义模式,其中[a-z]
表示匹配任意一个小写字母,[A-Z]
表示匹配任意一个大写字母,[0-9]
表示匹配任意一个数字,?
表示匹配任意一个单个字符,*
表示匹配任意数量的字符。