当前位置: 首页 > article >正文

shell7

for循环和while循环

实现功能打印1到100

for i in `seq 1 100`
do
	echo $i
done

或者

for i in $(seq 1 100)
do
	echo $i
done

打印1-99的例子

for i in ((i=1; i<100;i++))
do
	echo $i
done

[外链图片转存中…(img-sLt3KoYv-1734695849356)]

我们可以发现我们用sh和dash都无法运行,错误信息 “Syntax error: Bad for loop variable” 表明在脚本n.sh的第一行有一个不正确的for循环变量语法。
在Bash或Dash shell中,for循环的标准语法如下:

for var in item1 item2 ... itemN
do
    command1
    command2
    ...
done

或者如果你是通过一组数字迭代,你可以使用如下的C风格的语法(这个只适用于Bash,并不适用于所有的POSIX sh实现,包括dash):

for (( expr1; expr2; expr3 ))
do
    command1
    command2
    ...
done

如果dash n.sh命令是用来执行脚本,那么请注意dash是一个轻量级的shell,它严格遵循POSIX标准并且不像Bash那样包含额外的功能。这意味着一些在Bash中可用的特性可能在Dash中不可用。

while循环
i=1
while(( $i<=10 ))
do
	echo $i
	let i++
done

或者

i=1
while(( $i<=10 ))
do
	echo $i
	let "i++"
done

[外链图片转存中…(img-SCmCW1On-1734695849357)]

分析
  1. 初始化变量

    • i=1:这行代码在两种示例中都是相同的,它将变量i初始化为1。
  2. 条件判断

    • while(( $i<=10 )):这里使用了双括号((...)),这是Bash特有的算术环境。在这种环境中,可以直接使用比较运算符(如<=)而不需要额外的引号或转义。但是,这种语法不是POSIX标准的一部分,因此在Dash等其他shell中不被支持。
  3. 循环体

    • echo $i:输出当前的i值。
  4. 增量操作

    • 示例1使用了let ((i++)),而示例2使用了let "i++"let命令是用于执行算术运算的,i++是C风格的递增操作符。这两个例子在Bash中都能正确工作。不过,let和C风格的递增语句也不是POSIX标准的一部分,在某些shell中可能无法正常工作。
  5. 结束循环

    • done:结束while循环。

http://www.kler.cn/a/445971.html

相关文章:

  • 1. JasperSoft介绍与安装
  • 知网研学 | 知网文献(CAJ+PDF)批量下载
  • 二叉搜索树Ⅲ【东北大学oj数据结构8-3】C++
  • Hive解决数据倾斜
  • Moretl开箱即用日志采集
  • 游戏何如防抓包
  • 【C++】刷题强训(day16)--字符串替换、神奇数、DNA序列
  • MyBatis-Plus中isNull与SQL语法详解:处理空值的正确姿势
  • CICD篇之通过Jenkins中书写pipeline构建编译打包发布流程
  • Power Automate 简介
  • 【bash】linux中打包某个可执行文件及其依赖文件
  • Python实现应用最小二乘法融合SVM-LSTM回归模型电力负荷预测项目实战
  • AWR microwave office 仿真学习(二)使用多层结构天线/超表面的S参数确定层间距
  • jdk17用jmap -hea打印JVM堆信息报错Cannot connect to core dump or remote debug server
  • 岁末回望,追梦远方
  • tauri2中创建新的窗口方式,和tauri1不一样了哦
  • 【HTML】Shadow DOM
  • 对uniApp 组件 picker-view 的二次封装,实现日期,时间、自定义数据滚动选择,容易扩展
  • C#代码实现把中文录音文件(.mp3 .wav)转为文本文字内容
  • 使用Unity做一个3D吃豆人小游戏
  • 【人工智能】物联网技术及其应用
  • 电商店铺数据集成到金蝶云星辰V2的实践经验分享
  • k8s-1.28.1证书更新到100年-cenots7.9
  • 卷积神经网络-填充+步长
  • 差分数组的使用
  • 工业主板产品线的多样性与应用