首页 > 系统相关 >shell编程-for循环与while循环

shell编程-for循环与while循环

时间:2024-11-24 17:30:13浏览次数:6  
标签:do shell seq echo while 循环 done

接续上节讲述for循环以及接下介绍while循环

seq数字数列

for循环如果想要循环次数变多的情况,手动建设循环列表是不可行的,可以引用C语言框架,当然也可以使用seq构造数列。例如构造1-10的循环数列,我们让其循环10次。

for num in $(seq 10); do
    echo "循环次数为$num"
done

上述代码我们引用seq  生成数字数列,循环代码会先执行$(seq 10)的代码,seq后面跟着的数字如果只有一个,那默认是尾部,就是循环到多少个数字。

那我们想要改变默认从1开始,想从3开始到10直接在seq后面填入开始数字和结束数字即可。

for num in $(seq 3 10); do 
    echo "$num"
done 

那我们要想指定数量为双数怎么办,比如双数循环,单数不循环,有个seq的专业名词叫指定步长

for num in $(seq 2 2 10); do
    echo "$num"
done

seq完整的语句是开始数字,步长,结束数字。上述代码可以打印出增量为2的数字,既双数。

while循环 

 循环不仅仅有for,同样有while循环,shell中while循环和for循环语句基本一致

代码如下:

while [循环条件]; do
    循环体
done

其中while循环中的循环条件是可以进行判断的,例如是否相等,是否大于小于等等,如果满足这个条件,就进行循环,如果不满足就跳出循环。

判断条件可以使用-eq(等于)、-ne(不等于)、-gt(大于)、-lt(小于)、-ge(大于等于)和-le(小于等于)这些比较运算符,也可以使用 == (恒等于)!=(不等于)来比较字符串。

例如:

read -p "请输入你的年龄:" age

while [ $age -eq 18 ]; do

      echo "True"
done

 上述代码会接受用户输入年龄,当输入的值等于18时,就一直循环输出True。

那么我们也可以用true做个死循环,程序执行默认条件为真。

while true; do
    echo "这是个死循环"
done

除开死循环之类代码,我们也可以做判断文件是否存在,其中判断文件是否存在(-e)、是否是目录(-d)、是否是普通文件(-f)等

例如:

file= "passwd.txt"

while [! -e $file];do

    echo "正在创建文件。。。"
    touch $file
done
echo "passwd 文件已经存在"

我们可以通过上述代码判断文件是否存在,当文件不存在就创建,如果不是就输入文件已存在。

while循环可以和read命令结合来逐行读取文件内容

file="data.txt"
while read line; do
  echo $line
done < $file

根据上文代码我们可以循环读取data文件内容,并且一行一行打印出来,直到读取完毕。

标签:do,shell,seq,echo,while,循环,done
From: https://blog.csdn.net/weixin_45476967/article/details/144009733

相关文章

  • 【工具使用】【Shell脚本】【gitlab】下拉所有的仓库以及每个仓库的所有分支代码
    1 前言关于Gitlab我们之前看过【工具使用】【Shell脚本】【gitlab】下拉所有的仓库代码并指定分支推送给客户仓库、【工具使用】【Shell脚本】【gitlab】【最终篇】获取当前用户页面上可以看到的所有仓库代码以及拉推新仓库。前面两篇都是拉的某几个分支,本节我们看看,怎么把所......
  • 高性能计算-探究循环分块优化(2-1)
    1.目标:分析循环分块优化技术,并分析cache命中情况假设每个cacheline可以存储b个数据元素。2.源代码分析for(inti=0;i<N;i++){ for(intj=0;j<M;j++) { A[i]+=B[j]; }}cachemiss分析:对A总访问次数为NM,每次访存加载一个cacheline可以加载b个元素,并且连续访问,......
  • 论c语言中分支和循环语句的总结
       在c语言中,分支和循环语句是控制程序流程的基本构成。这些语句允许程序在不同的条件中实现不同的操作,或者是重复执行某段代码,那么我下面的总结将会从if语句、switch语句、while循环语句、do-while循环语句、for循环语句等几个方向出发来阐述我的观点以及看法。  ......
  • shell编程for循环和while循环
    声明!学习视频来自B站up主泷羽sec有兴趣的师傅可以关注一下,也欢迎大家本人公众号:泷羽Sec-track,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!网安工具:......
  • 在 Windows 域中,管理员可以使用多种工具进行用户和组账户的批量管理,包括 CSVDE、LDIFD
    在Windows域用户与组账户管理中,批量管理用户账户是常见的操作,特别是在需要快速创建、修改或删除多个用户时。为了高效地进行批量管理,Windows提供了多种工具,下面列出这些常见的工具及其功能。1. CSVDE.exe功能:用于批量导入和导出ActiveDirectory中的对象(如用户、组等)。......
  • shell脚本5,保姆篇---春不晚
    声明!通过学习泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频,做出的文章,如涉及侵权马上删除文章,笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负.文章为个人学习笔记。一、字符串运算符字符串比较注意这里字......
  • 关于sqlmap中--os-shell如何getshell的源码学习
    目录前言数据库注入getshell源码分析前言最近详细看了@v1ll4n大佬写的几篇关于sqlmap源码分析的文章(sqlmap内核分析)收获很多。借此机会在这里记录一下我较感兴趣的sqlmap中getshell相关部分的分析,简单从源码的角度看看sqlmap是如何通过--os-shell拿服务器shell的。数据库注入g......
  • shell脚本编写
    可以利用#/bin/bash,#/bin/dash,#/bin/sh这三种其实不管用哪种脚本解释器最后调用的还是这个dash脚本创建及变量使用第一种:首先建立一个1.sh文件vim1.sh里面写入echocnm,保存并退出,运行一下(赋予权限chmod777/1.sh)./1.sh第二种:新建一个2.sh用bash就能执行,不用赋......
  • shell编程(2)(3)
    目录一、永久环境变量按用户设置永久环境变量文件路径:示例步骤:删除永久环境变量二、脚本程序传递参数怎么实现三、用编程进行数学运算shell中利用expr进行运算运算与变量结合1.变量赋值和基本运算2.使用expr进行运算3.变量拼接4.条件判断结合变量声明:学习......
  • 重生之我在Python中用for循环实现九九乘法表
    没错,我又重生了,重生在一个风平浪静的下午,与以往不同,我好像学会了一个新技能------for循环,不同以往,又紧密相连,我双目紧闭,应天地之号召,挥手拂袖便显仙法#控制列的表达式,共9列foriinrange(1,10):#每行共有1到i个算式forjinrange(1,i+1):#乘法表达......