shell程序流程控制的三大结构:

  1. 顺序结构

  2.选择结构

  3.循环结构

 顺序结构的定义:

  顺序结构的程序设计是最简单的一种结构,它的执行顺序自上而下,依次执行,因此,我们只要按照解决问题的思路依次编写程序即可。

  

  顺序结构程序编写流程:

    1.编写脚本文件,以#!/bin/bash

    2.编写业务程序,顺序编写语句块1、语句块2、语句块3....

交互式输入与输出:

  read命令读取标准输入设备的一行,到新行换行符前的字符作为终止,把读到的字符赋值给变量

  可以结合echo一起实现读取并输出的功能

  read - p “提示信息” 变量

选择结构的定义:

  选择结构是程序中带有判断的一种逻辑结构,只有符合一定的条件,程序体才会被执行

  Linux shell 选择结构分类:

    1.if-then控制结构

    2.case--esac控制结构

      

循环结构的定义:

  for循环

    1.遍历/列表式循环结构

      语法;

        

    seq 命令产生一个数到另一个数之间的所有整数

    seq 10 20

    10 11 12 13 14 15 16 17 18 19 20  

    

    创建不连续序列,手动

    

    2.c语言风格for循环

      

  while循环的结构:

      

      

      

  循环中有两种类型的控制break和continue。

    这是一种无条件流程控制,强制程序跳出当前循环,或跳出当前循环继续执行下一个循环。

    1. break 命令 ,会退出当前的循环并且将控制权传递到本循环的最后面的第一个命令

    2.continue命令 ,当程序执行过程中遇到这个命令,就会忽略本次循环中剩余的命令,将控制权交给循环的顶部

while read line:

    while read line 可以按行读入,一直到所有行都读完,才退出循环,在实际工作中,会经常采用这种循环结构,进行数据的处理

    语法结构:

      cat file.txt | while read line #此处cat也可以是一个产生若干行的命令,如find

      do

        ....

      done

      

      

      

注意:

  while read line循环中的变量,当退出循环后,会被销毁,所以第二次使用循环体中的变量要想其他的方法

  所以文件的行数为0

Linux shell(5)的更多相关文章

  1. Linux Shell(初识)

    什么是Shell:Shell是一个命令解释器. Linux下支持shell的种类: 1.  Bourne Shell(简称sh) 2.C Shell(简称csh) 3.Korn Shell(简称ksh ...

  2. Linux shell(1)

    Linux的Shell种类众多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh).Bourne Again Shell(/bin/bash).C Shell(/usr/bi ...

  3. Linux shell(3)

    shell的运算操作: let整数运算 expr整数运算 bc浮点运算 字符串运算 let命令: let命令让BASH shell 执行算数值的操作,使用let,可以比较两个值或执行加减乘除等这样的算 ...

  4. Linux shell (一)

    echo -e "Hello World! \a \n"     # -e 解析反斜杠 read -p "Please input your first name: &q ...

  5. Linux shell(4)

    test比较两个值: 测试比较两个值是linux中常用的比较运算,test命令可以进行对两个值的比较,如果比较成功则返回值为0,否则为非0 常用比较方法: ·1.整数比较 2.字符串比较 3.逻辑比较 ...

  6. 实现一个简单的 Linux Shell(C++)

    Implement a simple command interpreter in Linux. The interpreter should: support both internal and e ...

  7. Linux入门篇(六)——Shell(二)

    这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...

  8. Linux 反弹shell(二)反弹shell的本质

    Linux 反弹shell(二)反弹shell的本质 from:https://xz.aliyun.com/t/2549 0X00 前言 在上一篇文章 Linux反弹shell(一)文件描述符与重定向 ...

  9. 每天一个 Linux 命令(21):find命令之xargs

    在使用 find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行.但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出 ...

随机推荐

  1. cisco查看机框 板卡 电源 SN 风扇环境运行状态和一些常用命令 巡检命令

    查看设备运行环境及状态 show environment 查看设备环境show environment temperature --查设备温度 show environment fans --查看设备 ...

  2. SDN 第二次作业

    问题 1.为什么需要SDN?SDN特点? 答:当今网络快速发展,用户的需求也就日益增加,但网络的创新速度却并没有增加,而是比较缓慢.传统网络中的网络设备是硬件.操作系统.网络应用紧耦合的,每个设备厂商 ...

  3. Netty入门(二)时间服务器及客户端

    在这个例子中,我在服务器和客户端连接被创立时发送一个消息,然后在客户端解析收到的消息并输出.并且,在这个项目中我使用 POJO 代替 ByteBuf 来作为传输对象. 一.服务器实现 1.  首先我们 ...

  4. BZOJ3173:[TJOI2013]最长上升子序列(Splay)

    Description 给定一个序列,初始为空.现在我们将1到N的数字插入到序列中,每次将一个数字插入到一个特定的位置.每插入一个数字,我们都想知道此时最长上升子序列长度是多少? Input 第一行一 ...

  5. thinkphp5整合 gatewaywork实现聊天

    1:将下载的gatewaywork下的\vendor  下的workman文件夹,整个复制到tp5下的vendor目录下 2:tp5\application\push   新键push文件夹,将下载的 ...

  6. 根据Uri获取文件的绝对路径

    简易版处理(实际并没发现有什么问题) public static String getRealPathFromURI(Context context, Uri contentURI) { String ...

  7. JS数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)

    最近做项目需要我们前端对金额进行千分位格式化(也就是说每三位用逗号隔开),代码已经做了修改  之前的版本是本人疏忽 真对不住大家了!现在已经做了修改 如果还有不完善的地方 请大家多多指教! 1. 支持 ...

  8. cloudstack网络部分知识点汇总

    UI界面的几个网络选项 DNS1:供此区域的来宾VM使用,此区域的公用IP必须路由到此服务器: 内DNS:供此区域的系统VM使用,提供点的专用IP必须路由到此服务器: 如:你在添加存储设备时,用的主机 ...

  9. sparse linear regression with beta process priors

    虽然翻译水平有限,但是看原文虽然看得懂,但是在词汇的问题上,会导致看了后面忘了前面,所以先蹩脚的翻译成中文,然后在仔细思考论文的思想(当然不能翻译成中文就不看英文原本了,得两者一起看,这样不会丢失前面 ...

  10. Controller中添加一个异步的Action

    给一段示例代码: public Task<ActionResult> TbReport(string code) { return Task.Factory.StartNew(() =&g ...