LinuxShell脚本——选择结构
LinuxShell脚本——选择结构
摘要:本文主要学习了Shell脚本中的选择结构。
if-else语句
基本语法
最简单的用法就是只使用if语句,它的语法格式为:
if 条件
then
命令
fi
如果将if和then写在一行,则需要在then前面添加“;”:
if 条件; then
命令
fi
如果有两个分支,就可以使用if-else语句,它的格式为:
if 条件
then
命令1
else
命令2
fi
Shell支持任意数目的分支,当分支比较多时,可以使用if-elif-else-结构,它的格式为:
if 条件1
then
命令1
elif 条件2
then
命令2
elif 条件3
then
命令3
...
else
命令n
fi
使用举例
最简单的使用案例,只有一个条件和一个命令:
#!/bin/bash
read a
read b
if (( $a == $b ))
then
echo "a和b相等"
fi
根据条件执行不同的命令:
#!/bin/bash
read a
read b
if (( $a == $b ))
then
echo "a和b相等"
else
echo "a和b不相等"
fi
当有多个条件需要判断时:
#!/bin/bash
read a
if (( $a > ))
then
echo "优秀"
elif (( $a > ))
then
echo "良好"
elif (( $a > ))
then
echo "中等"
elif (( $a > ))
then
echo "及格"
else
echo "不及格"
fi
case-in语句
基本语法
表达式既可以是一个变量、一个数字、一个字符串,也可以是一个数学计算表达式,或者是命令的执行结果,只要能够得到确定的值就可以。
条件可以是一个数字、一个字符串,甚至是一个简单的正则表达式。
case会将表达式的值与多个条件逐个进行匹配:
如果表达式的值和某个条件匹配成功,就会执行这个条件后面对应的所有语句,直到遇见双分号;;才停止;然后整个case语句就执行完了,程序会跳出case语句,执行esac后面的其它语句。
如果表达式的值没有匹配到任何一个条件,那么就执行*)后面的语句(符号“*”表示其它所有值),直到遇见双分号;;或者esac才结束。
语法格式如下:
case 表达式 in
条件1)
命令1
;;
条件2)
命令2
;;
条件3)
命令3
;;
...
*)
命令n
esac
支持的正则表达式
case-in的条件部分支持简单的正则表达式,具体来说,可以使用以下几种格式:
*:表示任意字符串。
[abc]:表示a、b、c三个字符中的任意一个。比如,[15ZH]表示1、、Z、H四个字符中的任意一个。
[m-n]:表示从m到n的任意一个字符。比如,[-]表示任意一个数字,[-9a-zA-Z]表示字母或数字。
|:表示多重选择,类似逻辑运算中的或运算。比如,abc|xyz表示匹配字符串“abc”或者“xyz”。
使用举例
#!/bin/bash
read a
case $a in
)
"优秀";;
)
"良好";;
)
"一般";;
)
echo "及格";;
*)
echo "不及格"
esac
LinuxShell脚本——选择结构的更多相关文章
- LinuxShell脚本——循环结构
LinuxShell脚本——循环结构 摘要:本文主要学习了Shell脚本中的循环结构. while循环 基本语法 while循环是最简单的一种循环,如果条件满足则执行循环里的语句,如果条件不满足则退出 ...
- shell编程中的 三种结构: 条件if/选择结构case/循环for/while/until等结构 和 函数的用法
shell 函数的使用 (md中, 列表本身是有格式的, 他要产生缩进, 其次,列表项和列表项之间, 可以留有一个空行, 是合法的, 允许的) shell函数,就是 就相当于一个命令来看待和处理的, ...
- Linux-Shell脚本编程-学习-1-Linux基本命令
在学习Linux-Shell脚本编程之前,我们需要学习一定的Linux基本命令,不然在后面学习Shell脚本编程的的时候,我们就呵呵了. 我学习所用的系统是Ubuntu 16.04版本 也没有什么规则 ...
- LinuxShell脚本——认识Shell脚本
LinuxShell脚本——认识Shell脚本 摘要:本文主要介绍了Shell脚本的一些基本知识. 什么是Shell脚本 shell脚本是利用shell的功能所写的一个程序,这个程序是使用纯文本文件, ...
- Shell基础(二):Shell中的数值运算、条件测试操作、使用if选择结构
一.Shell中的数值运算 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 使用expr.$[ ].let等整数运算工具:定义变量X=1234,然后计算X与78 ...
- 黑马程序员——C语言基础 流程控制 选择结构和循环结构
---恢复内容开始--- Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)流程控制 1> 顺序结构:默认的流程 ...
- C语言中的循环结构与选择结构
1. 为什么使用循环? 重复执行某段代码 2. while(条件){ 循环体: } 当条件成立的时候就执行循环体,条件不成立,就退出循环,继续执行while后面的语句 3. for ( 初始表达式 : ...
- C- 流程控制(顺序结构,选择结构,循环结构)
一.选择结构 1.if 特点: 同一时刻,只有一个大括号里面的代码会被执行 2,switch 特点 默认情况下,只有一个case后面的代码会被执行 如果一个case后面没有break,而且这个case ...
- 160809212田京诚C语言程序设计实验2 选择结构程序设计_进阶
实验2-6 猜数字游戏 实验要求: 编写一个C程序实现一个[1-100]以内的猜数字游戏. (1) 系统随机产生一个[1-100]之间的随机数. (2) 输入任意一个数字.数字 ...
随机推荐
- 使用过Redis,我竟然还不知道Rdb
目录 使用过Redis,那就先说说使用过那些场景吧 Rdb文件是什么,它是干什么的 分析工具 小结 联想 推荐阅读 使用过Redis,那就先说说使用过那些场景吧 字符串缓存 //举例 $redis-& ...
- JAVA集合框架(二)-List和Set
List的常用实现类 list集合是有序的,顺序即添加的顺序,元素是可重复的. ArrayList LinkedList Vector ArrayList 底层基于数组实现.在add元素的过程中,如果 ...
- 通过idea将maven工程转为web项目
前言 吐槽一下网上的各种转换教程..说的真的是吵来吵去,有用的东西极少.特此自己写一篇好使的. 转换过程 建好的maven工程 建好的maven工程长这个鬼样子~~,没有使用骨架.就是普通的建立方式. ...
- javascript基础修炼(12)——手把手教你造一个简易的require.js
目录 一. 概述 二. require.js 2.1 基本用法 2.2 细说API设计 三. 造轮子 3.1 模块加载执行的步骤 3.2 代码框架 3.3 关键函数的代码实现 示例代码托管在我的代码仓 ...
- C# params 用法
params 主要用在方法或函数参数数组中, 1,当参数个数不确定时使用 2,不能盒ref,和out组合使用 3,与参数数组对应的实参可以时一个 同类型数组,也可以时任意多个同类型变量 4,实参是数组 ...
- PHP制作的掷色子点数抽奖游戏实例
PHP制作的掷色子点数抽奖游戏实例,通过掷色子点数来达到抽奖的效果,为抽奖活动增添一些趣味性. 我们将在html页面中写下如下的html结构代码,.wrap用来放置色子和提示信息,#prize则是用来 ...
- Python中使用cutecharts实现简单的手绘风格的图表
场景 效果 cutecharts的Github: https://github.com/chenjiandongx/cutecharts 注: 博客: https://blog.csdn.net/ba ...
- 【重学Git】高级命令篇
1.分离HEAD.HEAD 总是指向当前分支上最近一次提交记录. 所谓分离HEAD,就是让HEAD直接指向某一条具体的提交记录,而不是默认的通过分支名指向当前分支的最近一条提交记录. 2.相对引用^. ...
- 剑指offer 23:从上往下打印二叉树
题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 解题思路 按照从左往右从上到下的顺序打印节点,需要我们维护一个队列,这个队列放入元素的顺序是访问队头节点(起始先放入根节点),则若当前 ...
- 【JDBC】CRUD操作
JDBC的CRUD操作 向数据库中保存记录 修改数据库中的记录 删除数据库中的记录 查询数据库中的记录 保存代码的实现 package demo1; import java.sql.Connectio ...