Shell编程之流程控制

news2024/11/20 0:42:12

目录

if判断

case语句

for循环

 while循环


if判断

语法:

if [ 条件判断表达式 ]

        then

                程序

elif [ 条件判断表达式 ]

         then

                程序

else

        程序

fi

注意:

  • [ 条件判断表达式 ],中括号和条件判断表达式之间必须有空格。
  • if,elif,else 后要有空格
  • if,fi 不可省略,elif,else 可省略

示例如下:

#!/bin/bash


if [ $1 == '']

  then

    echo "参数不能为空"

elif [ $1 == 1 ]

  then

    echo "输入的数字是1"

else

  echo "输入的参数是 $1"


fi

case语句

语法:

case $变量名 in

"值1")

        程序1

;;

"值2")

        程序2

;;

。。。其他分支。。。。。。

*)

        默认执行程序

;;

esac

示例:

#!/bin/bash

case $1 in
1)
        echo "输入的值是1"
;;

2)
        echo "输入的值是2"
;;
*)
        echo "输入的值是其他值"
;;
esac

注意:

  • 每一匹配模式必须以右括号结束;
  • 取值可以为变量或常数;
  • 匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;(类似break);
  • 取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令;
  • case、in 和 esac 都是 Shell 关键字, esac就是case的反写在这里代表结束case;
  • 匹配模式: 可以是一个数字、一个字符串,或者是一个简单正则表达式;

for循环

语法1:

for(( 初始值;循环控制条件;变量变化 ))

        do

                程序

        done

示例l:求1-100累加和

#!/bin/bash

for((i=1;i<=100;i++))

  do
    s=$[$s+$i]
  done

echo $s

语法2:

for 变量 in 值1 值2 值3 .。。。。。

        do

                程序

        done

示例:输出全部参数

#!/bin/bash

for i in $*
  do
    echo "输入变量是$i"
  done

 while循环

语法:

while [ 条件表达式 ]

        do

                程序

        done

 示例:求1-100累加和

#!/bin/bash

s=0
i=1

while [ $i -le 100 ]
do
    s=$[$s + $i]
    i=$[$i + 1]
done
echo $s

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/955489.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

8个 Python 自动探索性数据分析神库!

探索性数据分析是数据科学模型开发和数据集研究的重要组成部分之一。在拿到一个新数据集时首先就需要花费大量时间进行EDA来研究数据集中内在的信息。自动化的EDA Python包可以用几行Python代码执行EDA。 在本文中整理了10个可以自动执行EDA并生成有关数据的见解的Python包&am…

43、基于 springboot 自动配置的 spring mvc 错误处理,就是演示项目报错后,跳转到自定义的错误页面

Spring MVC 的错误处理&#xff1a;基于 SpringBoot 自动配置之后的 Spring MVC 错误处理。 就是访问方法时出错&#xff0c;然后弄个自定义的错误页面进行显示。 ★ 两种错误处理方式 方式一&#xff1a; 基于Spring Boot自动配置的错误处理方式&#xff0c;只要通过属性文件…

常用的中间件有哪些

中间件是什么 中间件&#xff08;英语&#xff1a;Middleware&#xff09;顾名思义是系统软件和用户应用软件之间连接的软件&#xff0c;以便于软件各部件之间的沟通&#xff0c;特别是应用软件对于系统软件的集中的逻辑&#xff0c;是一种独立的系统软件或服务程序&#xff0c…

Java 16进制字符串转换成GBK字符串

问题&#xff1a; 现在已知有一个16进制字符串 435550D3C3D3DAD4DABDBBD2D7CFECD3A6CFFBCFA2D6D0B4E6B7C5D5DBBFDBD0C5CFA2A3ACD5DBBFDBBDF0B6EE3130302E3036 而且知道这串的字符串对应的内容是&#xff1a; CUP用于在交易响应消息中存放折扣信息&#xff0c;折扣金额100.06 但…

设备报修系统有什么用?企业如何提高维修效率和质量?

在数字化时代&#xff0c;基于人工智能和大数据技术的设备报修系统已经成为企业提高服务质量和效率的重要手段。这种系统可以为用户提供方便快捷的报修方式&#xff0c;例如通过扫描设备上的二维码或通过公众号、企业微信、钉钉等平台提交报修请求。这种报修系统不仅可以提高故…

评估安全 Wi-Fi 接入:Cisco ISE、Aruba、Portnox 和 Foxpass

在当今不断变化的数字环境中&#xff0c;对 Wi-Fi 网络进行强大访问控制的需求从未像现在这样重要。各组织一直在寻找能够为其用户提供无缝而安全的体验的解决方案。 在本博客中&#xff0c;我们将深入探讨保护 Wi-Fi&#xff08;和有线&#xff09;网络的四种领先解决方案——…

Linux土遁术之监测监测进程打开文件

分析问题过程中&#xff0c;追踪进程打开的文件可以在许多不同情况下有用&#xff0c;体现在以下几个方面&#xff1a; 故障排除和调试&#xff1a; 当程序出现问题、崩溃或异常行为时&#xff0c;追踪进程打开的文件可以帮助您找出问题的根本原因。这有助于快速定位错误&…

基于战争策略算法优化的BP神经网络(预测应用) - 附代码

基于战争策略算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于战争策略算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.战争策略优化BP神经网络2.1 BP神经网络参数设置2.2 战争策略算法应用 4.测试结果&#xff1a;5…

AI绘画的一些网址收集

1、负面tag词语收集 https://www.bilibili.com/read/cv19834742 https://y3if3fk7ce.feishu.cn/docx/VOZMdoib8oY7xVxVoYbcA8m1nld 2、如何写关键词 https://y3if3fk7ce.feishu.cn/docx/KqEMdhJigoFY8fxc9TPcwMninKf 3、关键词 https://zhuanlan.zhihu.com/p/573340345 模板词…

电脑提示缺少d3dx9_43.dll的问题及5个解决方法

大家好&#xff01;今天&#xff0c;我将和大家分享一个电脑提示缺少d3dx9_43.dll的问题及其解决方法。这个问题可能会影响到我们在使用电脑时的一些功能&#xff0c;所以掌握这个解决方法对我们来说是非常有帮助的。 首先&#xff0c;我们来了解一下什么是d3dx9_43.dll。d3dx9…

串口接收不定长数据

使用串口进行数据的收发在嵌入式产品中是很常用的一种通信方式&#xff0c;因为串口的简单使用&#xff0c;很容易就被选为产品中数据交互的通信手段。 基于串口进行开发的功能有很多&#xff0c;比如同类/不同类产品之间的通信&#xff0c;RS485通信&#xff0c;RS232通信方式…

记一次私服GitLab合并分支教程

背景 关于在做项目的时候需要合并分支&#xff0c;第一次听到的时候一脸懵逼。之前都是在主支上面跑的&#xff0c;为此闹了不少笑话&#xff0c;现在记录一下教程步骤 合并请求新建合并请求 比较分支并继续 创建合并请求 构建 完成任务&#xff0c;这是自动化构建合并请求过…

前端面试知识点

基本方法 在 JavaScript 中&#xff0c;push、pop、shift 和 unshift 是用于操作数组的方法&#xff0c;它们的作用如下&#xff1a; push&#xff1a;将一个或多个元素添加到数组的末尾&#xff0c;并返回修改后的数组的新长度。原始数组会被修改。 const array [1, 2, 3]; …

Java 多线程系列Ⅰ(创建线程+查看线程+Thread方法+线程状态)

多线程基础 一、创建线程的五种方法前置知识1、方法一&#xff1a;使用继承Thread类&#xff0c;重写run方法2、方法二&#xff1a;实现Runnable接口&#xff0c;重写run方法3、方法三&#xff1a;继承Thread&#xff0c;使用匿名内部类4、方法四&#xff1a;实现Runnable&…

如何在,Linux中安装Luajit2.*

1.文件下载The LuaJIT Project 2.将下载文件上传到对应的服务器&#xff1a;例如/opt 3.进入对应的文件夹 4.make PREFIX/usr/local&#xff0c;设置安装路径 5.make install&#xff0c;编译安装 6.进入安装目录&#xff0c;cd /usr/local/include/luajit-2.0 7.luajit -v…

SAP FI之定义财务年和财务年度变式(Fiscal Year Variants)

目录 前言 一、财务年度/财务年度变式 二、使用步骤 1.配置步骤 前言 本文主要介绍SAP会计年度和SAP会计年度变式。 一、财务年度/财务年度变式 财务年度可以具有与日历年相同的期间&#xff0c;也可以不同。中国财政年度从1月到12月&#xff0c;称为历年制&#xff0c;有…

基于沙猫群算法优化的BP神经网络(预测应用) - 附代码

基于沙猫群算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于沙猫群算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.沙猫群优化BP神经网络2.1 BP神经网络参数设置2.2 沙猫群算法应用 4.测试结果&#xff1a;5.Matlab代…

WebGL 同一缓冲区多种数据传入顶点着色器 gl.vertexAttribPointer()的步进和偏移参数

目录 目录 为了将顶点坐标传入着色器&#xff0c;需要遵循一下五步&#xff1a; 但是&#xff01;&#xff01;&#xff01; 示例代码&#xff1a; gl.vertexAttribPointer&#xff08;&#xff09;的函数规范 stride参数 顶点坐标数据 offset参数 顶点尺寸数据 首先…

KaiwuDB 助力能源企业实现 4 大价值提升

行业背景 近年来&#xff0c;随着能源行业数字化的不断推进&#xff0c;智能电网、可再生能源发电、分布式发电、微电网等技术蓬勃发展。越来越多的能源企业意识到数据管理与价值挖掘对储能及能源利用有着重大意义&#xff0c;并开始探索一套有效的数据库解决方案以应对分布式…

Chrome小恐龙快跑小游戏——Python实现

目录 视频演示 代码实现 视频演示 Chrome小恐龙快跑小游戏——Python实现 代码实现 import pygame import os import random pygame.init()# Global Constants SCREEN_HEIGHT 600 SCREEN_WIDTH 1100 game_over False SCREEN pygame.display.set_mode((SCREEN_WIDTH, SCR…