Shell入门教程:流程控制(4)case 条件判断
以下是一个使用case语句实现菜单功能的例子:
在Shell编程中,条件判断是非常重要的一部分。使用if语句可以实现简单的条件判断,但是当需要多个条件判断时,if语句就会显得不够灵活和简洁。这时候就需要用到case语句。
case语句类似于switch语句,在不同的情况下执行不同的命令。它比if语句更加灵活和易于维护。
以下是一个使用case语句实现菜单功能的例子:
“`
#!/bin/bash
echo “请选择一个选项:”
echo “1. 显示日期”
echo “2. 显示当前用户”
echo “3. 显示当前目录”
echo “4. 退出”
read choice
case $choice in
1)
date;;
2)
whoami;;
3)
pwd;;
4)
![Shell入门教程:流程控制(4)case 条件判断缩略图 Shell入门教程:流程控制(4)case 条件判断](https://www.72715.net/wp-content/uploads/2023/05/f22b8d774a0dba29663b37485b77c1f3.png)
exit;;
*)
echo “无效选项”;;
esac
在上面的例子中,我们首先输出了一个菜单供用户选择。然后通过read命令读取用户输入,并将其保存在变量choice中。接着使用case语句根据用户输入执行相应的命令。
如果用户输入了1,则显示当前日期;如果输入了2,则显示当前登录用户名;如果输入了3,则显示当前所在目录;如果输入了4,则退出脚本;否则输出”无效选项”。
需要注意的是,在case语句中,每个分支都以一对圆括号开始和结束。每个分支可以包含一个或多个模式,模式之间使用竖线(|)分隔。如果用户输入的值与某个模式匹配,则执行该分支下面的命令。
除了使用单独的变量作为判断条件外,还可以使用通配符来进行模式匹配。例如:
echo “请输入一个文件名:”
read filename
case $filename in
*.txt)
echo “这是一个文本文件”;;
*.sh)
echo “这是一个Shell脚本”;;
echo “未知类型文件”;;
在上面的例子中,我们通过读取用户输入获取了一个文件名,并根据其后缀来判断该文件类型。如果后缀为.txt,则输出”这是一个文本文件”;如果后缀为.sh,则输出”这是一个Shell脚本”;否则输出”未知类型文件”。
总之,case语句在Shell编程中非常有用,在复杂的流程控制场景中能够大大简化代码量和提高可读性。