本文是Linux Shell脚本系列教程的第(十三)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程
上一篇之 后,分支语句非常实用,基本上高级语言都支持分支语句(python 没有),大多数都使用switch … case格式,但是在Shell却没有switch … case,不过别担心,Shell是支持分支语句的,只不过使用case … esac格式而已。二者在本质上是相同的。
一、Shell分支语句case···esac语法
case 值 in 模式1) command1 command2 command3 ;; 模式2) command1 command2 command3 ;; *) command1 command2 command3 ;; esac
说明:case后为取值,值后为关键字 in,接下来是匹配的各种模式,每一模式最后必须以右括号结束。
值可以为变量或常数。
模式支持正则表达式,可以用以下字符:
* 任意字串 ? 任意字元 [abc] a, b, 或c三字元其中之一 [a-n] 从a到n的任一字元 | 多重选择
匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。
;; 与其他语言中的 break 类似,意思是不执行接下来的语句而是跳到整个 case 语句的最后。
*)与default相似,如果上面没有匹配到的模式,则执行*)里的内容。
二、Shell分支语句case···esac使用举例
通过一个例子来学习下case…esac命令:
#!/bin/sh #auther:linuxdaxue.com #date:2016-05-30 case $1 in start | begin) echo "I am started!" ;; stop | end) echo "I am stopped!" ;; *) echo "Other command!" ;; esac
说明:这个脚本练习的是模式匹配,模式匹配支持‘|’符,有一个条件符合就会执行命令。
输出:
$./test.sh start I am started! $./test.sh stop I am stopped! $./test.sh begin I am started! $/test.sh hello Other command!
接下来给大家演示一个通过case…esac语句产生菜单的例子:
#!/bin/bash #Author:linuxdaxue.com #Date:2016-05-30 #Desc:Shell case菜单练习 clear # 清屏. echo " Contact List" echo " ------- ----" echo "Choose one of the following persons:" echo echo "[E]vans, Roland" echo "[J]ones, Mildred" echo "[S]mith, Julie" echo "[Z]ane, Morris" echo read person case "$person" in # 注意, 变量是被""引用的. "E" | "e" ) # 接受大写或者小写输入. echo echo "Roland Evans" echo "4321 Floppy Dr." echo "Hardscrabble, CO 80753" echo "(303) 734-9874" echo "(303) 734-9892 fax" echo "revans@zzy.net" echo "Business partner & old friend" ;; # 注意, 每个选项后边都要以双分号;;结尾. "J" | "j" ) echo echo "Mildred Jones" echo "249 E. 7th St., Apt. 19" echo "New York, NY 10009" echo "(212) 533-2814" echo "(212) 533-9972 fax" echo "milliej@loisaida.com" echo "Ex-girlfriend" echo "Birthday: Feb. 11" ;; # 后边的 Smith 和 Zane 的信息在这里就省略了. * ) # 默认选项. # 空输入(敲回车RETURN), 也适用于这里. echo echo "Not yet in database." ;; esac echo # 练习: # ----- # 修改这个脚本, 让它能够接受多个输入, #+ 并且能够显示多个地址. exit 0
说明:这个例子主要为大家演示了如何用case…esac语句产生菜单,让大家可以更形象、灵活的来学习case…esac语句的用法。
输出:
Contact List ------- ---- Choose one of the following persons: [E]vans, Roland [J]ones, Mildred [S]mith, Julie [Z]ane, Morris E Roland Evans 4321 Floppy Dr. Hardscrabble, CO 80753 (303) 734-9874 (303) 734-9892 fax revans@zzy.net Business partner & old friend
上面是输入E参数的输出,输入S或者Z,则会输出如下:
Contact List ------- ---- Choose one of the following persons: [E]vans, Roland [J]ones, Mildred [S]mith, Julie [Z]ane, Morris Z Not yet in database.
好了,关于Shell中分支语句case…esac的用法就先为大家介绍到这里,case…esac是一个非常强大的命令,大家可以用其来做非常多的事情,这篇文章仅仅只是入门作用,更多的需要大家在实际使用中多多尝试,多多练习。
更多Linux Shell教程请看:Linux Shell脚本系列教程
原文:Linux Shell系列教程之(十三)Shell分支语句case … esac教程
上一篇:Linux Shell脚本入门教程系列之(十二)Shell until循环
下一篇:Linux Shell脚本入门教程系列之(十四) Shell Select教程
本文转自:Linux Shell脚本入门教程系列之(十三)Shell分支语句case … esac教程
相关推荐
Linux Shell脚本编程实例 Linux Shell脚本编程实例是指使用Linux操作系统的Shell来编写脚本程序,实现自动化任务、批处理和system administration等功能。本文将通过实例讲解Linux Shell脚本编程的基本概念、语法和...
shell脚本是Linux操作系统中的一种编程语言,用于自动执行一系列命令。shell脚本文件是一个纯文本文件,可以使用任何文本编辑器编写,通常以.sh作为后缀名。 一、shell脚本的基本结构 shell脚本的基本结构包括: ...
### Linux Shell脚本编程学习入门知识点详解 #### 一、Shell脚本编程概述 - **定义**:Shell脚本是用于Unix/Linux操作系统的一种自动化工具,通过编写一系列命令来进行任务的批量处理或自动化操作。 - **用途**:...
Linux中的Shell脚本编程是系统管理和自动化任务的重要工具。Shell是Linux系统中用户与内核进行交互的界面,负责解释用户输入的命令和脚本。 在Shell脚本编程中,常见的Shell种类包括ash、bash(sh)、csh(tcsh)、...
在Linux操作系统中,Shell脚本是一种强大的自动化工具,它允许用户通过编写一系列命令来执行复杂的任务。这篇文章将深入探讨Shell脚本编程的基础知识,包括语法、常用命令以及如何创建和运行自定义脚本。 1. Shell...
"shell脚本语言" Shell 简介: Shell 是一种命令语言和程序设计语言,用户可以通过 Shell 完成大部分工作。Shell 既可以交互式地解释和执行用户输入的命令,也可以定义各种变量和参数,提供了许多控制结构,包括...
Linux Shell程序设计是Linux系统管理与自动化任务处理的重要部分,主要使用Bash(Bourne-Again SHell)脚本来编写。...熟悉这些后,你将能够编写出功能强大、自动化程度高的Shell脚本,提升Linux系统的使用效率。
"人性化解析shell脚本,快速入门sh、bash、shell入门" Shell脚本是Linux操作系统中的一种编程语言,用于自动化系统管理和任务执行。本文档旨在快速入门Shell脚本,帮助读者快速掌握Shell脚本的基本知识和使用方法...
在IT行业中,shell脚本是Linux或Unix操作系统中不可或缺的一部分,它是一种强大的自动化工具,能够帮助用户执行一系列命令,简化日常任务。本文将探讨shell脚本中的“case”语句,以及如何通过实例来理解其用法。 ...
Linux实验shell脚本 Linux实验shell脚本是Linux系统中的一种自动化工具,使用shell脚本可以实现自动化系统管理、数据处理、文件操作等任务。在本文档中,我们将学习如何创建和执行shell脚本,了解shell脚本中变量的...
Shell脚本,全称为Bash Shell脚本,是Linux或Unix系统中的一种程序设计语言,它基于Shell命令行解释器,允许用户通过编写脚本来自动化一系列的系统操作。Shell脚本的编写对于日常的系统管理和自动化任务至关重要。...
从给定的文件信息来看,我们正在探讨的主题是“Linux下的shell编程入门”,这涉及到Linux操作系统中的shell脚本编写基础。下面将详细解析文件中提到的关键知识点。 ### 1. Shell编程简介 Shell编程是在Linux或类...
在Shell脚本中,变量的定义与赋值是基础且重要的功能之一。可以通过以下方式来定义变量: - **直接赋值**:`variable_name=value` - **带引号赋值**:`variable_name="value with spaces"` - **使用等号空格**:...
一、Linux系统Java服务自启动shell脚本 自启动脚本主要目的是在Linux系统启动时自动启动Java服务,确保服务的高可用性。创建自启动脚本通常包括以下步骤: 1. 创建shell脚本:在系统的`/etc/init.d/`目录下创建一...
Shell脚本是Linux/Unix操作系统中的重要组成部分,它是一种基于命令行的编程语言,用于自动化系统管理和执行一系列任务。在Linux环境中,shell脚本扮演着不可或缺的角色,它们能够提高工作效率,减少手动操作,并且...
本文将详细介绍如何使用 Shell 脚本来监控 Linux 服务器日志,并在出现关键字异常时触发相应的动作或告警操作,通知到邮件联系人。 安装邮件服务 为了实现邮件告警功能,需要先安装邮件服务。可以使用 mailx 软件...
在Linux系统中,Shell脚本是一种强大的自动化工具,可以用于执行一系列命令、处理文件和数据。上述文件中展示了几个不同的Shell脚本实例,主要涉及以下几个关键知识点: 1. **Shebang(井号感叹号)**: 在每个脚本...
3. 选择结构:`case...esac`提供多分支选择。 4. 跳转语句:`break`退出当前循环,`continue`跳过当前循环剩余部分,`exit`结束整个shell脚本。 四、Shell函数 定义和调用自定义函数,方便代码重用和模块化。例如:...