Shell编程基础 – for循环

Shell编程基础 – for循环

Shell Scripting Essentials - for Loop

大多数编程语言都有循环的概念和语句。如果想重复一个任务数十次,无论是输入数十次,还是输出数十次,对用户来说都不现实。

因此,我们考虑如何用好Bash Shell编程,挖掘它的力量来促成循环,并高效完成任务。我们知道,在Bourne Shell中拥有For, While循环,可能这个功能比其它语言少,但没有人声称Shell编程具有C语言的强大功能。

本文简要介绍for循环在shell编程过程的应用,希望对您有所帮助。

1. For循环

For循环遍历一组值,直到列表耗尽为止。
以下示例为非嵌套的单循环,代码如下。

1) 示例一:
#!/bin/bash
for I in 1 2 3 4 5
do 
  echo “Looping … number $idone

运行结果如下图:
在这里插入图片描述

2) 示例二

尝试用以下代码运行:

#!/bin/sh
for i in hello 1 * 2 goodbye 
do
  echo "Looping ... i is set to $i"
done

于是,运行代码结果如下图:

在这里插入图片描述
调试这段代码,看看它有什么作用。请注意,这些值可以是任意值。

这非常值得一试。确保您了解这里发生的事情。

  • 尝试不带 * 并掌握这个想法,然后重新阅读通配符部分并在 * 到位的情况下再次尝试。
  • 也可以在不同的目录中尝试它,并用双引号将 * 括起来,并尝试在它前面加上反斜杠 (*)

上述脚本的运行结果已经看到了。在变量序列里,位于1和2之间的…(省略号)输出元素,代表着当前目录的第一个文件名for1.sh,和当前目录的第二个文件名for2.sh。

3) 示例三:

输出从1至20之间的偶数。

#!/bin/bash

for I in {0..20..2}
do
   echo “The even number is: $idone

在这里插入图片描述

4) 示例四:

变换一下上述题的规则,例如:我们想要输出从零到100的,并且能相距7的数字。

#!/bin/bash
for i in {0..100..7}
do 
   echo “The number divided by 7 is: $idone

执行结果如下图:
在这里插入图片描述

5) 示例五

下面让我们一起完成九九乘法表吧。
根据乘法公式推算,这必须符合被乘数与乘数相乘,然后得出结果。

#!/bin/bash

for((i=1; i<=9; i++))
do
  dor((j=1;j<=I;J++))
  do 
     echo -en$i * $j = $[i*j]\t”
  done
  echo -e\r”
done

执行结果如下图:
在这里插入图片描述
好了,九九乘法表就打印结束了。

技术好文陆续推出,请关注我的博文。
您的兴趣,我的动力!

Jackson@ML

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(Spring学习06)Spring之循环依赖底层源码解析

什么是循环依赖&#xff1f; 很简单&#xff0c;就是A对象依赖了B对象&#xff0c;B对象依赖了A对象。 比如&#xff1a; // A依赖了B class A{public B b; }// B依赖了A class B{public A a; }那么循环依赖是个问题吗&#xff1f; 如果不考虑Spring&#xff0c;循环依赖并不…

浅谈STL中的分配器

分配器是STL中的六大部件之一&#xff0c;是各大容器能正常运作的关键&#xff0c;但是对于用户而言确是透明的&#xff0c;它似乎更像是一个幕后英雄&#xff0c;永远也不会走到舞台上来&#xff0c;观众几乎看不到它的身影&#xff0c;但是它又如此的重要。作为用户&#xff…

计算机缺少vcruntime140_1.dll的5个解决方法,轻松解决dll缺失问题

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“缺少vcruntime140_1.dll”。这个错误提示通常出现在运行某些程序或游戏时&#xff0c;这个错误通常会导致某些应用程序无法正常运行。那么&#xff0c;如何解决缺少vcruntime140_1.dll的问…

Vue框架学习笔记——事件处理:v-on指令+methods

文章目录 前文提要事件处理的解析过程&#xff0c;v-on:事件名样例代码如下&#xff1a;效果展示图片&#xff1a;v-on:事件名"响应函数"v-on简写形式响应函数添加响应函数传参占位符"$event"注意事项 前文提要 本人仅做个人学习记录&#xff0c;如有错误…

深度学习框架配置

目录 1. 配置cuda环境 1.1. 安装cuda和cudnn 1.1.1. 显卡驱动配置 1.1.2. 下载安装cuda 1.1.3. 下载cudnn&#xff0c;将解压后文件复制到cuda目录下 1.2. 验证是否安装成功 2. 配置conda环境 2.1. 安装anaconda 2.2. conda换源 2.3. 创建conda环境 2.4. pip换源 3.…

Linux以nohup方式运行jar包

1、在需要运行的jar包同级目录下建立启动脚本文件&#xff1a; 文件内容&#xff1a; #! /bin/bash #注意&#xff1a;必须有&让其后台执行&#xff0c;否则没有pid生成 jar包路径为绝对路径 nohup java -jar /usr/local/testDemo/jdkDemo-0.0.1-SNAPSHOT.jar >/us…

MX6ULL学习笔记 (一)交叉工具链的安装

前言&#xff1a; ARM 裸机、Uboot 移植、Linux 移植这些都需要在 Ubuntu 下进行编译&#xff0c;编译就需要编译 器&#xff0c;Ubuntu 自带的 gcc 编译器是针对 X86 架构的&#xff01;而我们现在要编译的是 ARM 架构的代码&#xff0c;因为我们编译的代码是需要烧写到ARM板子…

nacos集群开箱搭建-linux版本搭建

原创/朱季谦 nacos是一款易于构建云原生应用的动态服务发现、配置管理和服务管理平台&#xff0c;简单而言&#xff0c;它可以实现类似zookeeper做注册中心的功能&#xff0c;也就是可以在springcloud领域替代Eureka、consul等角色&#xff0c;同时&#xff0c;还可以充当spri…

吴恩达《机器学习》10-6-10-7:学习曲线、决定下一步做什么

一、学习曲线 1. 学习曲线概述 学习曲线将训练集误差和交叉验证集误差作为训练集实例数量&#xff08;m&#xff09;的函数绘制而成。这意味着从较少的数据开始&#xff0c;逐渐增加训练集的实例数量。该方法的核心思想在于&#xff0c;当训练较少数据时&#xff0c;模型可能…

MVVM 模式与 MVC 模式:构建高效应用的选择

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

3.2 Windows驱动开发:内核CR3切换读写内存

CR3是一种控制寄存器&#xff0c;它是CPU中的一个专用寄存器&#xff0c;用于存储当前进程的页目录表的物理地址。在x86体系结构中&#xff0c;虚拟地址的翻译过程需要借助页表来完成。页表是由页目录表和页表组成的&#xff0c;页目录表存储了页表的物理地址&#xff0c;而页表…

数字阅读用户规模持续增长 5.3亿人享受数字化阅读便利

近日,鲁迅长孙周令飞在接受采访时表示,自己“现在90%的时间刷视频,10%的时间看书”,引发网友热议。不少网友表示,鲁迅的孙子都花90%的时间刷视频,难怪现在没人看书了,其实这并不奇怪,也并不表明没人看书,而是读屏与读书并重的时代,纸质阅读与数字阅读共同构成了日常的阅读模式。…

机器学习常用距离度量方法

机器学习常用距离度量方法 前言一、前期准备二、距离度量方法1. 欧氏距离2.曼哈顿距离3.切比雪夫距离4. 闵可夫斯基距离 总结 前言 机器学习中往往通过度量来研究不同样本或数据集之间的差异性&#xff0c;合适的度量方式可以显著提高算法的准确率&#xff0c;因此在接下来的内…

js逆向-某赞滑块

声明 本文仅供学习参考&#xff0c;如有侵权可私信本人删除&#xff0c;请勿用于其他途径&#xff0c;违者后果自负&#xff01; 如果觉得文章对你有所帮助&#xff0c;可以给博主点击关注和收藏哦&#xff01; 前言 目标网站&#xff1a;aHR0cHM6Ly9hY2NvdW50LnlvdXphbi5j…

科普 | 隧道代理IP,简化操作提升安全性

随着数字化时代的深入发展&#xff0c;企业对网络数据的依赖日益增强。在这样的背景下&#xff0c;隧道代理IP正在以其独特的优势改变传统的网络代理模式&#xff0c;为企业级数据采集领域带来革命性的变革。 隧道代理IP技术简介 隧道代理IP通过云端服务器实现自动化的HTTP代理…

检验科LIS系统源码,LIS系统,检验数据分析,生成检验报告

检验科LIS系统源码&#xff0c;全套LIS系统商业项目源码 LIS是HIS系统的一个重要的组成部分&#xff0c;其主要功能是将检验的实验仪器传出的检验数据经分析&#xff0c;生成检验报告&#xff0c;通过网络存储在数据库中&#xff0c;这样医生能够方便、及时的看到患者的检验结果…

96.STL-遍历算法 transform

目录 transform 语法&#xff1a; 功能描述&#xff1a; 函数原型&#xff1a; 代码示例&#xff1a; transform 是 C 标准模板库&#xff08;STL&#xff09;中的一个算法&#xff0c;用于对一个范围内的元素进行转换并将结果存储到另一个范围。以下是简要解释和一个示例…

leetcode 202.快乐数

代码&#xff1a; class Solution {//计算 n 每个位置上的数字的平方和public int quadraticSum(int n){int sum0;while (n>0){int in%10;sumi*i;n/10;}return sum;}public boolean isHappy(int n) {//慢指针int slown;//快指针int fastquadraticSum(n);while (slow!fast){…

JVM 参数介绍

在一些规模稍大的应用中&#xff0c;Java虚拟机&#xff08;JVM&#xff09;的内存设置尤为重要&#xff0c;想在项目中取得好的效率&#xff0c;GC&#xff08;垃圾回收&#xff09;的设置是第一步。 PermGen space&#xff1a;全称是Permanent Generation space.就是说是永久…

音视频学习(十九)——rtsp收流(tcp方式)

前言 本文主要介绍以tcp方式实现rtsp拉流。 流程图 流程说明: 客户端发起tcp请求&#xff0c;如向真实相机设备请求&#xff0c;端口一般默认554&#xff1b;tcp连接成功&#xff0c;客户端与服务端开始rtsp信令交互&#xff1b;客户端收到play命令响应后&#xff0c;开启线…