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

Shell编程学习之breakcontinuereturn的应用

  • Shell编程中的break关键字:
  • break关键字:退出最近的循环,后续循环不再执行;
  • break关键字用法:
break         #结束本层循环
break 数字n   #结束n层循环
  • 测试代码1:
#!/bin/bashfor((i=1;i<6;i++))
dofor((j=1;j<6;j++))doif [ $j -eq 4 ]thenbreak fiecho $i+$jdone
done
  • 运行结果1:
1+1
1+2
1+3
2+1
2+2
2+3
3+1
3+2
3+3
4+1
4+2
4+3
5+1
5+2
5+3
  • 测试代码2:
#!/bin/bashfor((i=1;i<6;i++))
dofor((j=1;j<6;j++))dofor((k=1;k<6;k++))doif [ $k -eq 4 ]thenbreak 2fiecho $i+$j+$kdonedone
done
  • 运行结果2:
1+1+1
1+1+2
1+1+3
2+1+1
2+1+2
2+1+3
3+1+1
3+1+2
3+1+3
4+1+1
4+1+2
4+1+3
5+1+1
5+1+2
5+1+3
  • Shell编程中的continue关键字:
  • continue关键字:使用后,后面的代码不再执行,但是依然执行下一次的循环;
  • continue关键字用法:
continue        #结束本层本次循环
continue 数字n  #结束n层的本次循环
  • 测试代码1:
#!/bin/bashfor((j=1;j<5;j++))
dofor((k=1;k<5;k++))doif [ $k -eq 3 ]thencontinuefiecho $j+$kdone
done
  • 运行结果1:
1+1
1+2
1+4
2+1
2+2
2+4
3+1
3+2
3+4
4+1
4+2
4+4
  • 测试代码2:
#!/bin/bashfor((i=1;i<5;i++))
dofor((j=1;j<5;j++))dofor((k=1;k<5;k++))doif [ $k -eq 3 ]thencontinue 2fiecho $i+$j+$kdonedone
done
  • 运行结果2:
1+1+1
1+1+2
1+2+1
1+2+2
1+3+1
1+3+2
1+4+1
1+4+2
2+1+1
2+1+2
2+2+1
2+2+2
2+3+1
2+3+2
2+4+1
2+4+2
3+1+1
3+1+2
3+2+1
3+2+2
3+3+1
3+3+2
3+4+1
3+4+2
4+1+1
4+1+2
4+2+1
4+2+2
4+3+1
4+3+2
4+4+1
4+4+2
  • Shell编程中的return关键字:
  • return关键字:可用于Shell编程中函数的返回值,
  • 特别注意:
  • 1.这种方式的函数返回值是有范围的,0~255;
  • 2.需要在函数调用处,使用位置变量$?,该位置变量的作用是:判断上一条命令执行是否成功,结果为0,则成功,为1,则失败;
  • return关键字用法:
return $变量
  • 测试代码:
#!/bin/bashfunction my_mul(){KEY=$(( $1 * $2 ))return $KEY
}my_mul 15 15
echo $?
  • 运行结果:
225
  • 总结:
  • 可以类比C语言break、continue、return进行学习;
  • 详见本人原创博客链接:
https://blog.csdn.net/qq_41878292/article/details/132238621?spm=1001.2014.3001.5502
http://www.lryc.cn/news/136257.html

相关文章:

  • 有趣的数学 数学建模入门二 一些理论基础
  • Spring复习:(55)ApplicationContext中BeanFactoryPostProcessor是怎么添加到容器的?
  • 给wordpress添加关键词与描述
  • Verilog 入门
  • shell 简单且常用的几种
  • redis基本介绍以及在node中使用
  • React Native 文本输入基础知识
  • qt显示图片并转换成灰度图及伪彩图
  • oj在线编程输入输出
  • 【LeetCode 算法】Add Two Integers 两整数相加-位运算
  • 企业网络日志安全与 EventLog Analyzer
  • 清风数学建模——拟合算法
  • 单片机 (一) 让LED灯 亮
  • c++——单例模式
  • C# 流Stream详解(2)——FileStream、BinaryReader、MemorySream、SreamReader等之间的关系
  • 【JavaSE】详解final关键字
  • 问道管理:机器人概念走势活跃,新时达涨停,拓斯达、丰立智能等大涨
  • elementui 修改日期选择器el-date-picker样式
  • 自己实现 SpringMVC 底层机制 系列之-实现任务阶段 6-完成控制器方法获取参数-@RequestParam
  • 数据可视化:图表绘制详解
  • 【中危】Apache Ivy<2.5.2 存在XXE漏洞 (CVE-2022-46751)
  • C#使用自定义的比较器对版本号(编码)字符串进行排序
  • AI在日常生活中的应用:从语音助手到自动驾驶
  • Windows10查看图片的分辨率
  • Spring事务和事务传播机制(2)
  • 计算机视觉 -- 图像分割
  • ubuntu18.04复现yolo v8之CUDA与pytorch版本问题以及多CUDA版本安装及切换
  • Redis三种模式——主从复制,哨兵模式,集群
  • mysql8.0.31新增只读远程普通用户
  • 揭开路由协议隐藏的风险