shell-循环语句和case分支

2023-11-16

一、if 循环

if + [条件];then
		执行内容
	elif [];then
		执行内容
	else
		执行内容			
fi
或者
if + [条件]
	then
		执行内容
	else
		执行内容
fi

例:
chmod +x 脚本名(给与执行权限)
在这里插入图片描述

二、case 分支

case	$变量	in
变量值1)
	执行内容
	;;
变量值2)
	执行内容
	;;
*)  	#其它情况
执行内容
	;;
esac

例:
代码:
在这里插入图片描述效果:
在这里插入图片描述

三、while 循环

while + [判断条件]
do
	执行内容
done

例:
代码
在这里插入图片描述
效果
在这里插入图片描述

四、for 循环

for + ((判定条件))
do
	执行内容
done

for  变量	in  {提取内容}
do
	执行内容
done


代码
在这里插入图片描述效果
在这里插入图片描述

五、while + for + if

内外循环可看情况搭配,没有固定格式,但是每个循环体的格式不变。

break 		#跳出此层循环,可加数字,如:break 2,跳出第二层循环,从break所在循环,向外层数第二层,不加数字,默认为1.
continue	#此次循环不执行,也不会跳出,而是继续执行下一次循环。
exit		#退出当前环境,也就是退出当前脚本,(类似结束此次脚本)

注意代码书写规范,格式,方便排错,优化。
如:
while [判断条件]
do
	for ((判断条件))
	do
		if [判断条件];then
			执行内容
		else
			执行内容	
		fi
	done
done

例:(continue效果)
代码
在这里插入图片描述效果:(不输出内循环为3的)
在这里插入图片描述
例:(break效果)

代码
在这里插入图片描述

效果(到3结束)

在这里插入图片描述
例:(break后加数字)
在这里插入图片描述
效果 (内循环到3 结束第二层循,一共就2层,所以直接结束了)
注:break 加数字,是从break所在循环像外数
在这里插入图片描述

总结:多注意格式。

shell 里面的代码,格式要求比较严格,有很多格式错误也没有提示,如:if ()中缺少空格是没有提示的,多注意格式。
多注意格式。
多注意格式。
多注意格式。
多注意格式。
多注意格式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

shell-循环语句和case分支 的相关文章

  • 从“stdin”读取文件后如何使用“input()”?

    Context 我想要一个简单的脚本 它可以选择多个管道输入中的一个 而不需要EOF when reading a lineUnix Linux 上的错误 它试图 接受多行管道文本 等待用户选择一个选项 将该选项打印到标准输出 所需用途 p
  • 命令行参数中的“-”(破折号)有什么魔力?

    例子 创建 ISO 映像并将其直接刻录到 CD mkisofs V Photos r home vivek photos cdrecord v dev dev dvdrw 更改到上一个目录 cd 侦听端口 12345 并解压发送到该端口的数
  • 使用 shell 脚本在 docker 容器内运行脚本

    我正在尝试创建一个 shell 脚本来设置 docker 容器 我的脚本文件如下所示 bin bash docker run t i p 5902 5902 name mycontainer privileged myImage new b
  • 如何替换每行中出现的所有字符串?

    我想在以下脚本中将所有出现的 用户名 替换为 但它仅替换第一次出现的情况 ls al sed s username 这就是 sed 默认情况下的工作方式吗 提前致谢 你需要g 全局 修饰符 sed s username g
  • 如何从 C 文件更改终端中的目录

    如何从 C 程序更改将在终端上生效的目录 实际上不要告诉 system 函数或 chdir 函数 这些仅适用于 C 中的进程或子 shell 假设我正在从 bash shell 执行一个 C 程序 其进程 ID 为 10223 那么 我可以
  • 如何获取与文件类型关联的图标路径和索引?

    给定一个文件类型 例如 txt 我怎样才能得到 path index 文件类型的关联图标路径和索引 例如 我想转换 txt into Path SystemRoot system32 imageres dll Index 102 有了这些信
  • bash双括号问题

    我对 bash 脚本非常陌生 在使用双括号时遇到了问题 我似乎无法让它们在 Ubuntu Server 11 10 中工作 我的下面的脚本位于 if test sh 中 bin bash if 14 14 then echo FOO fi
  • 使用 cURL 从 shell 发布 4GB 文件

    我尝试将文件大小为 4GB 的文件发布到 REST API cURL 不会上传此大小的文件 而是 POST 内容长度为 0 的文件 curl v i d work large png H Transfer Encoding chunked
  • 让 Emacs ansiterm 和 Zsh 更好地发挥作用

    我一直在尝试在 emacs 会话中使用 Zsh 而无需 emacs 重新映射所有 Zsh 键 我发现 ansi term 对此非常有效 但是我仍然遇到一些问题 我输出了很多垃圾字符 我可以用以下方法修复它 Setup proper term
  • 如何仅将整个嵌套目录中的头文件复制到另一个目录,在复制到新文件夹后保持相同的层次结构

    我有一个目录 其中有很多头文件 h 和其他 o 和 c 文件以及其他文件 这个目录里面有很多嵌套的目录 我只想将头文件复制到一个单独的目录 并在新目录中保留相同的结构 cp rf oldDirectory newDirectory将复制所有
  • 从 bash 脚本运行节点

    很简单 我正在尝试使用 cron 自动运行 nodejs 脚本 但是脚本本身似乎无法运行该文件 我的脚本很简单 usr bin env node node var node assets js update js 但是 在运行此命令时 它返
  • shell脚本“x$VARIABLE”中x的用途[重复]

    这个问题在这里已经有答案了 我正在查看一些 shell 脚本 comarison shcu 中 x 的用途是什么 if x USER x RUN AS USER then su RUN AS USER c CATALINA HOME bin
  • 如何从 Linux 的 shell 中删除所有以 ._ 开头的文件?

    确实如标题所示 我已将许多文件从 Mac 复制到 Raspberry Pi 这导致了许多以前缀开头的多余文件 我想删除以以下开头的文件夹中的每个文件 我该怎么做 尝试类似的方法 cd path to directory rm rf 或者 如
  • 为什么减法返回 - 符号

    我对简单的减法有疑问 但我不明白出了什么问题 我的代码 start date s N cut b1 13 Treatment end date s N cut b1 13 delta expr end start echo delta de
  • 如何在lua中获取shell脚本的返回码?

    我正在lua中执行一个脚本 os execute sh manager scripts update system sh f 我想获得脚本的输出 如果退出状态为 7 则返回 7 I tried local output os execute
  • shell_exec 的输出被截断为 100 个字符

    当在 shell 中运行以下命令时 curl F file filename http 192 168 0 1 产生以下输出 Accuracy 0 0 1 classification Accuracy 0 0 1 classificati
  • xsel -o 对于 OS X 等效项

    是否有一个等效的解决方案可以在 OS X 中抓取选定的文本 就像适用于 Linux 的 xsel o 一样 只需要当前的选择 这样我就可以在 shell 脚本中使用文本 干杯 埃里克 你也许可以安装xsel在 MacOS 上 更新 根据 A
  • 使用 find - 删除除任何一个之外的所有文件/目录(在 Linux 中)

    如果我们想删除我们使用的所有文件和目录 rm rf 但是 如果我希望一次性删除除一个特定文件之外的所有文件和目录怎么办 有什么命令可以做到这一点吗 rm rf 可以轻松地一次性删除 甚至可以删除我最喜欢的文件 目录 提前致谢 find ht
  • ReferenceError:MongoDB shell 中未定义 require

    我尝试通过 Windows 命令 Windows 8 1 从 Mongo 客户端连接 MongoDB 当我使用require 在 javascript 中 我遇到如下错误 有人有同样的问题吗 我有错过任何一个吗require有关的npm安装
  • 使用 posix shell 测试字符串中的正则表达式

    如何测试字符串是否与特定字符串匹配正则表达式与基本 无 bash 或任何其他 posix shell 脚本 在 if 语句中 您可以使用expr在 POSIX shell 中计算正则表达式的命令 s Abc expr s alpha 3 e

随机推荐

  • TailwindCSS 3.0 (二) 设置背景颜色和背景图片的方法

    设置背景颜色 background color 1 背景颜色 Background Color 基础用法 透明度 自定义主题颜色 其他用法 2 渐变颜色 基础用法 渐变色标 基础用法 其他用法 3 背景图片 Background Image
  • VisualStudio代码格式化方法

    有时我们从其他地方复制过来的代码当粘贴到VS中时 代码缩进的格式已经没有了 这样看代码十分不直观 自己重新排版又太慢 还好VS中已经为我们提供了自动格式化的功能 下面是格式化的几种方法 VS2008即以后的各个版本通用 1 选中需要格式化的
  • java对象复制_Java对象的复制三种方式

    Java对象的复制三种方式 概述 在实际编程过程中 我们常常要遇到这种情况 有一个对象A 在某一时刻A中已经包含了一些有效值 此时可能 会需要一个和A完全相同新对象B 并且此后对B任何改动都不会影响到A中的值 也就是说 A与B是两个独立的对
  • 让你久等了《开源安全运维平台OSSIM疑难解析--入门篇》正式出版

    2019年暑期 众所期待的新书 开源安全运维平台OSSIM疑难解析 入门篇 由人民邮电出版社正式出版发行 此书从立意到付梓 历时超过两年 经过数十次大修 历经曲折与艰辛 希望为大家代奉献一本好书 愿这本书能陪伴OSSIM用户一起进步一起成长
  • 结构化设计和模块设计

    结构化设计 结构化设计包括架构设计 接口设计 数据设计和过程设计等任务 它是一种面向数据流的设计方法 是以结构化分析阶段所产生的成果为基础 进一步自顶而下 逐步求精和模块化的过程 1 概要设计与详细设计的主要任务 概要设计阶段的主要任务是设
  • Java 15中的隐藏类是咋回事?

    Java 从1 1 版就有匿名类 但是 匿名类并不是匿名的 你不需要为它们命名 它们是由 Java 编译器命名的 如果你熟悉命令javap 则可以 反汇编 JAR 文件并查看编译器为匿名类生成的名称 Java 15 引入了没有名称的隐藏类
  • ModuleNotFoundError: No module named ‘rosbag‘

    1 ModuleNotFoundError No module named rosbag File opt ros kinetic lib python2 7 dist packages roslib launcher py line 42
  • 数字图像处理中一元函数f(x)的二阶导数=f(x+1)+f(x-1)-2f(x)的由来

    在 为什么说数字图像的一阶微分为f x 1 f x 介绍了数字图像处理中一元函数的一阶导数的由来 该一阶导数为 在该书中 同时定义了一元函数f x 其二阶导数的基本定义为 关于这个推导其中有点点小技巧 式3 6 1也可以表述为 f x f
  • C++基础——初始化列表

    目录 一 初始化列表 1 列表格式 情况1 成员变量中有const成员 但列表处成员不被初始化时 情况1 成员变量中有const成员 给缺省值时 情况1 成员变量中有const成员 列表处成员不仅初始化 还有缺省值 情况2 成员是自定义类型
  • WinCE 下 RAS 拨号连接的建立和拨号过程

    在 CE 下如果系统没有建立拨号网络 要实现上网功能时 就需要通过代码来实现建立拨号网络 拨号实现上网的过程 以下代码中的参数和拨号所用数值 都是电信 EVDO 的配置 如果换 GSM 或 WCDMA 时 请相应修改 cpp view pl
  • PHP学习笔记 Win平台下PHP开发环境的搭建

    Win平台下PHP开发环境的搭建 本文参考了PHP官方文档 http php net manual zh install windows iis7 php 写成 如果需要了解详细信息 请直接参考PHP官方文档 下载并配置PHP 下载PHP
  • 第十四届蓝桥杯模拟赛(第三期)试题与题解 C++

    目录 一 填空题 一 最小的十六进制 答案 2730 二 Excel的列 答案 BYT 三 相等日期 答案 70910 四 多少种取法 答案 189 五 最大连通分块 答案 148 二 编程题 一 哪一天 二 信号覆盖 三 清理水草 四 最
  • 关于我写了三万字博客后悔了好久这件事之第二个三万字GUI(swing)

    目录 简介 使用Swing的优势 Swing的特征 Swing基本组件的用法 Swing组件层次 AWT组件的Swing实现 简单了解swing JFrame 弹窗 标签 面板 按钮 3 6 列表 3 7 文本框 JTree TreeMod
  • java的静态与非静态 及其代码演示示例

    静态与非静态的概念 运行Java应用程序时 在实际的代码运行之前的一个步骤是加载类 具体点说 在Java SE 8的JVM中 需要先把类加载到Metaspace 如果类中有静态成员 加载类时会在heap中为其分配空间 此空间是属于类的 类中
  • colab 跑 deformable-detr 记录:

    GPUS PER NODE 1 tools run dist launch sh 1 configs r50 deformable detr sh 报错 cannot import name NewEmptyTensorOp from to
  • ChatGPT能够识别并纠正错误吗?

    ChatGPT在一定程度上可以识别和纠正错误 但其能力有限 以下是对ChatGPT识别和纠正错误能力的详细分析 1 基于模型训练的纠错 ChatGPT模型是通过大规模的训练数据进行训练的 这些训练数据通常是从互联网上收集的文本数据 在这个过
  • C++ 时间函数gmtime、gmtime_r、localtime、localtime_r

    测试环境 vmware 7 Redhat5 5 系统时间使用UTC 时区为上海 1 函数功能介绍 使用man gmtime或man localtime都可以的得到这几个函数的介绍 原型如下 struct tm gmtime const ti
  • JS特性

    JS是解释型语言 不需要提前预编译 JS是弱类型语言 在定义变量的时候不需要定义变量的类型 变量是松散类型 即可以用来保存任何类型的数据 JS没有块作用域 if for都是块 但有函数作用域 JS重复定义变量并不会报错 定义的新变量的值会覆
  • AQS原理 自己浅显理解

    http ifeve com java special troops aqs 这篇博客讲的很好 通篇看完收获不少 精简一下自己的收获 1 AQS是一个基于状态 state 的链表管理方式 reentracntlock这个锁是基于AQS实现的
  • shell-循环语句和case分支

    一 if 循环 if 条件 then 执行内容 elif then 执行内容 else 执行内容 fi 或者 if 条件 then 执行内容 else 执行内容 fi 例 chmod x 脚本名 给与执行权限 二 case 分支 case