case
是 Linux shell 脚本中的一种控制结构,用于根据不同的条件执行不同的命令序列。它类似于其他编程语言中的 switch
语句。case
语句允许你根据变量的值来选择执行哪一段代码。
case $variable in
pattern1)
command1
;;
pattern2)
command2
;;
...
*)
default_command
;;
esac
case
关键字开始一个 case
语句。$variable
是要检查的变量。in
关键字引入模式列表。pattern1
, pattern2
, ... 是匹配模式,可以是字符串、通配符或其他正则表达式。()
,然后是要执行的命令。;;
表示结束当前模式块。*)
是默认模式,当没有其他模式匹配时执行。esac
关键字结束 case
语句。case
语句可以使代码更加简洁,特别是当你有多个条件分支时。*
, ?
, [...]
等通配符进行匹配。=~
运算符进行正则表达式匹配。#!/bin/bash
echo "请输入一个数字(1-3):"
read number
case $number in
1)
echo "你选择了 1"
;;
2)
echo "你选择了 2"
;;
3)
echo "你选择了 3"
;;
*)
echo "无效的选择"
;;
esac
case
语句中的模式匹配不生效原因:可能是由于模式匹配的语法错误,或者变量未正确赋值。
解决方法:
#!/bin/bash
echo "请输入一个数字(1-3):"
read number
case $number in
[1])
echo "你选择了 1"
;;
[2])
echo "你选择了 2"
;;
[3])
echo "你选择了 3"
;;
*)
echo "无效的选择"
;;
esac
case
语句中的命令执行失败原因:可能是由于命令本身有误,或者环境问题导致命令无法执行。
解决方法:
#!/bin/bash
echo "请输入一个数字(1-3):"
read number
case $number in
1)
ls -l /nonexistent_directory # 这个目录不存在,会报错
;;
2)
echo "你选择了 2"
;;
3)
echo "你选择了 3"
;;
*)
echo "无效的选择"
;;
esac
希望这些信息对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云