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 条件判断

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编程中非常有用,在复杂的流程控制场景中能够大大简化代码量和提高可读性。