在linux shell编程中,流程控制结构与语句,也算是shell脚本中的重点了,不了解的朋友,跟随脚本小编一起来学习下吧。

linux控制流结构学习。

一,shell控制流结构

1.控制结构   6.while循环 
2.if then else语句 7.until循环 
3.case 语句  8.break控制 
5.for循环    9.continue控制

1,if then else 
 if 条件1 如果条件1为真 
 then 那么 
 命令1 执行命令1 
 elif 条件2 如果条件1不成立而条件2成立 
 then 那么 
 命令2 执行命令2 
 else 如果条件1,2均不成立 
 命令3 那么执行命令3 
 fi 完成

2,case语句 
 case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。case语句格式如下: 
 case 值in 
 模式1 } 
 命令1 
 . . . 
 ; ; 
 模式2) 
 命令2 
 . . . 
 ;; 
 esac

3,for 循环 
 for循环一般格式为: 
 for 变量名in列表 
 do 
 命令1 
 命令2? 
 done 
 当变量值在列表里, for循环即执行一次所有命令,使用变量名访问列表中取值。命令可为任何有效的shell命令和语句。变量名为任何单词。in列表用法是可选的,如果不用它, for循环使用命令行的位置参数。in列表可以包含替换、字符串和文件名。

4,while循环 
 while循环用于不断执行一系列命令,也用于从输入文件中读取数据,其格式为: 
 while 命令 
 do 
 命令1 
 命令2 
 . . . 
 done 
虽然通常只使用一个命令,但在while和do之间可以放几个命令。命令通常用作测试条件。
只有当命令的退出状态为0时,do和done之间命令才被执行,如果退出状态不是0,则循环终止。
命令执行完毕,控制返回循环顶部,从头开始直至测试条件为假。

5,until循环 
until循环执行一系列命令直至条件为真时停止。until循环与while循环在处理方式上刚好相反。
一般while循环优于until循环,但在某些时候—也只是极少数情况下, until循环更加有用。

until循环格式为: 
until 条件 
命令1 
. . . 
done 
条件可为任意测试条件,测试发生在循环末尾,因此循环至少执行一次—请注意这一点。

使用break和continue控制循环 
break命令允许跳出循环。break通常在进行一些处理后退出循环或case语句。如果是在一个嵌入循环里,可以指定跳出的循环个数。

例如,如果在两层循环内,用break 2刚好跳出整个循环。 
continue命令类似于break命令,只有一点重要差别,它不会跳出循环,只是跳过这个循环步。

linux shell学习之shell流程控制的更多相关文章

  1. shell学习之路:流程控制(while)

    while循环: 介绍:while循环是不定循环,也称作条件循环.只要条件判断成立,循环就会一直继续执行,直到条件判断不成立,循环才会停止,这就是和for的固定循环不太一样了. while [ 条件判 ...

  2. shell学习之路:流程控制(for)

    for循环的语法: 1.  for 变量 in 值1 值2 值3.... do 程序 done 例如:下列脚本会分别打印4次 分别是morning noon afternoon evening的值 # ...

  3. shell学习之路:流程控制(if)

    1.单分支if条件语句 if [ 条件判断式 ];then 程序 fi 或者 if [ 条件判断式 ] then 程序 fi 注意事项: 1.if语句使用fi结尾,和一般语言使用大括号结尾不同 2.[ ...

  4. Shell学习之Shell特性(一)

    Shell学习之Shell特性 目录 命令和文件自动补齐功能 命令历史记忆功能 history.上下键.!number.!string.!$.!! 别名功能 alias.unalias cp.~use ...

  5. [Shell]条件判断与流程控制:if, case, for, while, until

    ---------------------------------------------------------------------------------------------------- ...

  6. Shell入门教程:流程控制(1)命令的结束状态

    在Bash Shell中,流程控制命令有2大类:“条件”.“循环”.属于“条件”的有:if.case:属于“循环”的有:for.while.until:命令 select 既属于“条件”,也属于“循环 ...

  7. shell echo/read/printf/流程控制章节笔记

    // echo read printf 流程控制 命令 1.read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量 read hello 输入xxx echo $hell ...

  8. Shell(三)流程控制

    Shell 流程控制 和Java.PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法): <?php if (isset($_GET["q"])) { ...

  9. Python学习笔记 - day4 - 流程控制

    Python流程控制 Python中的流程控制主要包含两部分:条件判断和循环. Python的缩进和语法 为什么要在这里说缩进和语法,是因为将要学习的条件判断和分支将会涉及到多行代码,在java.c等 ...

随机推荐

  1. C++ 入门到进阶 学习路线

    前言 学习这件事不在乎有没有人教你,最重要的是在于你自己有没有觉悟和恒心. -- 法布尔 简介 随着互联网及互联网+深入蓬勃的发展,经过40余年的时间洗礼,C/C++俨然已成为一门贵族语言,出色的性能 ...

  2. 本地以sysdba 身份登录数据库实例时,报错ORA-01031 权限不足

    在linux 操作系统的数据库服务器上,使用"sqlplus / as sysdba" 登录Oracle 10.2 数据库实例时,登录失败,显示ORA-01031:  权限不足. ...

  3. OPPO 图数据库平台建设及业务落地

    本文首发于 OPPO 数智技术公众号,WeChat ID: OPPO_tech 1.什么是图数据库 图数据库(Graph database)是以图这种数据结构存储和查询的数据库.与其他数据库不同,关系 ...

  4. laravel DB 类库

    DB 类操作数据库    基本用法: DB::table('tableName'); 获取操作tableName 表        增加信息        对数据库中的某个表增加数据主要有两个函数可以 ...

  5. 面试官:咱们来聊一聊mysql主从延迟

    背景 前段时间遇到一个线上问题,后来排查好久发现是因为主从同步延迟导致的,所以今天写一篇文章总结一下这个问题希望对你有用.如果觉得还不错,记得加个关注点个赞哦 思维导图 思维导图 常见的主从架构 随着 ...

  6. [ccBB]Billboards

    参考loj2265中关于杨表的相关知识 先来考虑$m\mid n$的情况: 记$t=\frac{n}{m}$,将序列划分为$[1,m],[m+1,2m],...,[(t-1)m+1,tm]$这$t$段 ...

  7. [bzoj1107]驾驶考试

    转化题意,如果一个点k符合条件,当且仅当k能到达1和n考虑如果l和r($l<r$)符合条件,容易证明那么[l,r]的所有点都将会符合条件,因此答案是一个区间枚举答案区间[l,r],考虑如何判定答 ...

  8. 待办事项-redis

    package com.easyagu.liwei.util;import redis.clients.jedis.BinaryClient;import redis.clients.jedis.Je ...

  9. java 后台通过IO流把文件传到前端并下载

    我的业务需求是两个不同的web程序放在不同的服务器上,web程序A要访问到web程序B上传上来的文件,所以用到了这一个IO读取文件的接口 JAVA代码(排版有点问题  已经尽力补救了(:3_ヽ)_) ...

  10. GPG 使用指南

    加密与签名 在传输信息时,会面临两个典型的问题: 如何保证发出的消息,只能被预期的接收人获取? 如何保证收到的消息,确实由预期的发送人发出? 这两个问题不难理解.例如发送的邮件可能会被监听,诈骗分子可 ...