linux系统的shell中case判断用法
时间: 2023-10-08 21:11:05 浏览: 109
在Linux系统的Shell中,`case` 是一种用于多分支条件判断的控制结构。它可以根据给定的值匹配多个模式,并执行相应的代码块。以下是 `case` 语句的一般用法:
```shell
case $variable in
pattern1)
# 匹配模式1时执行的代码块
;;
pattern2)
# 匹配模式2时执行的代码块
;;
pattern3)
# 匹配模式3时执行的代码块
;;
*)
# 默认情况下执行的代码块(可选)
;;
esac
```
其中:
- `$variable` 是要进行匹配的变量。
- `pattern1`、`pattern2`、`pattern3` 等是用来匹配的模式。模式可以使用通配符(如 `*`、`?`)或正则表达式。
- `;;` 表示匹配成功后结束当前分支,进入下一个分支(如果有)。
- `*)` 是一个可选的通配符模式,用于匹配所有其他情况。
以下是一个示例,演示如何使用 `case` 判断文件类型:
```shell
#!/bin/bash
file="example.txt"
case $file in
*.txt)
echo "文本文件"
;;
*.jpg|*.png|*.gif)
echo "图像文件"
;;
*.sh)
echo "Shell 脚本文件"
;;
*)
echo "未知类型"
;;
esac
```
在上述示例中,根据文件名的扩展名进行匹配,输出文件的类型。如果文件名以 `.txt` 结尾,则匹配到第一个分支执行相应代码块;如果文件名以 `.jpg`、`.png` 或 `.gif` 结尾,则匹配到第二个分支执行相应代码块;如果文件名以 `.sh` 结尾,则匹配到第三个分支执行相应代码块;否则,匹配到 `*)` 分支并执行默认代码块。
通过合理使用 `case` 语句,可以根据不同的条件执行相应的代码,提供更灵活的控制流程。