linux shell中return、break、continue、exit用法解释

1.return用法解释

linux shell中return用来返回函数的返回值

样例:

[root@kibana ~]# cat return.sh 
#!/bin/bashnum=$#function return_test()
{if [ $num == 0 ];thenreturn 22fi
}return_test
echo $?
[root@kibana ~]# sh return.sh 
22
[root@kibana ~]# sh return.sh 11
0
[root@kibana ~]# 

2.break用法解释

break n:表示退出n层循环;如果省略n,则表示只能退出最内层的循环

样例(break-1 level):

[root@kibana ~]# cat break-1.sh 
#!/bin/bashfor outerloop in 1 2 3 4 5
doecho -n "Group $outerloop: "for innerloop in 1 2 3 4 5doecho -n "$innerloop "if [ "$innerloop" -eq 3 ];thenbreak#当innerloop值等于3时,退出innerloop的for循环,即innerloop循环的值4和5不会打印出来,但是outerloop的for循环不受影响fi  doneecho
done[root@kibana ~]# sh break-1.sh 
Group 1: 1 2 3 
Group 2: 1 2 3 
Group 3: 1 2 3 
Group 4: 1 2 3 
Group 5: 1 2 3 
[root@kibana ~]# 

样例(break-2 level): 

[root@kibana ~]# cat break-2.sh 
#!/bin/bashfor outerloop in 1 2 3 4 5
doecho -n "Group $outerloop: "for innerloop in 1 2 3 4 5doecho -n "$innerloop "if [ "$innerloop" -eq 3 ];thenbreak 2#当innerloop值等于3时,退出innerloop及outerloop的for循环,即innerloop循环的值4和5不会打印出来,outerloop 2、3、4、5循环不会再进行fi  doneecho
done
echo
[root@kibana ~]# sh break-2.sh 
Group 1: 1 2 3 
[root@kibana ~]# 

3.continue用法解释

continue n:n表示把n层循环的剩余代码都去掉,但是循环的次数不变;如果省略n,表示只会去掉本次循环的剩余代码,即跳过本次循环,进入循环的下一次迭代,循环的次数也是不变

样例(continue-1 level):

[root@kibana ~]# cat continue-1.sh 
#!/bin/bashLIMIT=19echo
echo "Printing Numbers from 1 to 20 (4 and 9 not included)."a=0
while [ $a -le "$LIMIT" ]
doa=$(($a+1))if [ "$a" -eq 4 ] || [ "$a" -eq 9 ]then#除了4和9continue#跳过本次循环剩余的语句fiecho -n "$a "#在$a等于4和9的时候,这句将不会执行
done
echo;echo
echo Printing Numbers from 1 to 20,but something happens after 3.
[root@kibana ~]# sh continue-1.sh Printing Numbers from 1 to 20 (4 and 9 not included).
1 2 3 5 6 7 8 10 11 12 13 14 15 16 17 18 19 20 Printing Numbers from 1 to 20,but something happens after 3.
[root@kibana ~]# 

样例(continue-2 level):

[root@kibana ~]# cat continue-2.sh 
#!/bin/bashfor outer in I II III IV V
doecho; echo -n "Group $outer: "for inner in 1 2 3 4 5 6 7 8 9 10doif [ "$inner" -eq 8 ]thencontinue 2#在第2层循环上的continue,也就是“外部循环”.fiecho -n "$inner "#8 9 10将不会被echo.done
done
echo;echoexit 0
[root@kibana ~]# sh continue-2.sh Group I: 1 2 3 4 5 6 7 
Group II: 1 2 3 4 5 6 7 
Group III: 1 2 3 4 5 6 7 
Group IV: 1 2 3 4 5 6 7 
Group V: 1 2 3 4 5 6 7 [root@kibana ~]# 

4.exit用法解释

exit n:n表示返回n,n为正整数(n>=0),一般情况下,n=0表示正常退出shell程序,n>1表示退出shell程序异常;n也可以忽略,当shell正常退出时,返回0;当shell异常退出时,返回1。

样例:

[root@kibana ~]# cat exit.sh 
#!/bin/bashfor ((i=1;i<5;i++))
doif [ $i -eq 3 ]thenexitfiecho $i
done
[root@kibana ~]# sh exit.sh 
1
2
[root@kibana ~]# echo $?
0
[root@kibana ~]#

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零开始:神经网络(2)——MP模型

声明&#xff1a;本文章是根据网上资料&#xff0c;加上自己整理和理解而成&#xff0c;仅为记录自己学习的点点滴滴。可能有错误&#xff0c;欢迎大家指正。 神经元相关知识&#xff0c;详见从零开始&#xff1a;神经网络——神经元和梯度下降-CSDN博客 1、什么是M-P 模型 人…

MySQL时间类型和Mybatis处理

MySQL时间类型和Mybatis处理 以后在Mysql中表示时间&#xff0c;统一用DateTime或者varchar类型 参考&#xff1a; MyBatis 处理 MySQL 时间类型 date 、datetime、timestamp Mysql-基础-时间存储&#xff08;Date&#xff0c;Java 8 中的日期处理&#xff0c;Json&#xff…

《剑指 Offer》专项突破版 - 面试题 76 : 数组中第 k 大的数字(C++ 实现)

目录 详解快速排序 面试题 76 : 数组中第 k 大的数字 详解快速排序 快速排序是一种非常高效的算法&#xff0c;从其名字可以看出这种排序算法最大的特点是快。当表现良好时&#xff0c;快速排序的速度比其他主要对手&#xff08;如归并排序&#xff09;快 2 ~ 3 倍。 快速排…

浏览器与Node.js事件循环:异同点及工作原理

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

记一次项目所学(中间件等)-动态提醒功能(RocketMQ)

记一次项目所学(中间件等&#xff09;–动态提醒功能&#xff08;RocketMQ&#xff09; 订阅发布模式与观察者模式 RocketMQ&#xff1a;纯java编写的开源消息中间件 高性能低延迟分布式事务 Redis : 高性能缓存工具&#xff0c;数据存储在内存中&#xff0c;读写速度非常快 …

达梦审计功能

达梦审计 前言 根据达梦官网文档整理 一、为什么要做数据库审计 增强内部安全&#xff0c;可解答是哪个对象/人员更改了关键数据&#xff0c;并在何时进行的更改。 安全等保、内审等合规条件的基本需求 定责、追责等提供依据&#xff0c;起到威慑作用 二、谁去做审计 安…

Meta正打造一个巨型AI模型,旨在为其“整个视频生态系统”提供动力,一位高管透露

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Swift 入门学习:集合(Collection)类型趣谈-上

概览 集合的概念在任何编程语言中都占有重要的位置&#xff0c;正所谓&#xff1a;“古来聚散地&#xff0c;宿昔长荆棘&#xff1b;游人聚散中&#xff0c;一片湖光里”。把那一片片、一瓣瓣、一粒粒“可耐”的小精灵全部收拢、吸纳的井然有序、条条有理&#xff0c;怎能不让…

Mac笔记本聚焦SpotLight占用内存太高的 解法

分享一个自创的绝对有效的解决苹果电脑Mac笔记本SpotLight聚焦占用内存过高的方法! 一、背景 / 问题原因 1、Mac的聚焦功能,可以快速打开应用程序,非常方便! But,随着电脑的使用文件等越来越多,就会导致SpotLight聚焦需要更多更多甚至巨多的内存来建立索引,就会导致电脑…

tcp流式服务和粘包问题

目录 1.概念 2.流式服务 3.粘包问题 1.概念 套接字是一个全双工的 使用TCP协议通信的双方必须先建立连接,然后才能开始数据的读写,双方都必须为该连接分配必要的内核资源,以管理连接的状态和连接上数据的传输. TCP连接是全双工的,即双方的数据读写可以通过一个连接进行,完成…

【C语言】linux内核ip_local_out函数

一、讲解 这个函数 __ip_local_out 是 Linux 内核网络子系统中的函数&#xff0c;部分与本地出口的 IPv4 数据包发送相关。下面讲解这段代码的每一部分&#xff1a; 1. 函数声明 int __ip_local_out(struct net *net, struct sock *sk, struct sk_buff *skb)&#xff1a; -…

剪枝例题一道

例题一 Code force round 我的思路&#xff0c;DFS遍历所有x&#xff0c;y&#xff0c;然后用set记录所有k&#xff0c;但是TLE了&#xff0c;最后发现&#xff0c;可以应用剪枝&#xff0c;如果一个x&#xff0c;y得出的k已经在set中存在了&#xff0c;那么不用再继续DFS后续…

react实战——react旅游网

慕课网react实战 搭建项目问题1.按照官网在index.tsx中引入antd出错&#xff1f;2.typescript中如何使用react-router3.react-router3.1 V63.2 V53.3V6实现私有路由 4.函数式组件接收props参数时定义数据接口&#xff1f;5.使用TypeScript开发react项目&#xff1a;6.要使一个组…

SQLite3中的callback回调函数注意的细节

调用 sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void *data, char **errmsg)该例程提供了一个执行 SQL 命令的快捷方式&#xff0c; SQL 命令由 sql 参数提供&#xff0c;可以由多个 SQL 命令组成。 在这里&#xff0c; 第一个参数 sqlite3 是打开的数据库对…

代码随想录算法训练营第day41|背包理论基础、416. 分割等和子集

目录 a.背包理论基础——01背包 1.二维数组的01背包表示 2.一维滚动数组表示 b. 416. 分割等和子集 - 力扣&#xff08;LeetCode&#xff09; a.背包理论基础——01背包 背包问题分类&#xff1a; 对于面试的话&#xff0c;其实掌握01背包&#xff0c;和完全背包&#xff…

Excel F4键的作用

目录 一. 单元格相对/绝对引用转换二. 重复上一步操作 一. 单元格相对/绝对引用转换 ⏹ 使用F4键 如下图所示&#xff0c;B1单元格引用了A1单元格的内容。此时是使用相对引用&#xff0c;可以按下键盘上的F4键进行相对引用和绝对引用的转换。 二. 重复上一步操作 ⏹添加或删除…

SSM框架,MyBatis-Plus的学习(下)

条件构造器 使用MyBatis-Plus的条件构造器&#xff0c;可以构建灵活高效的查询条件&#xff0c;可以通过链式调用来组合多个条件。 条件构造器的继承结构 Wrapper &#xff1a; 条件构造抽象类&#xff0c;最顶端父类 AbstractWrapper &#xff1a; 用于查询条件封装&#xf…

首屏性能优化:提升用户体验的秘籍

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

复盘-excel

excel-选列没有用&#xff0c;选小标题才可以 将簇状柱形图放置在一个新表上##### excel: 添加数据模型时&#xff0c;要通过套用表格格式与外部断开连接 透视分析2010年人数未解决(第四套&#xff09; 通过日期显示星期几 判断星期几 因为前面已经通过星期六&#xff0c…

03_Tomcat

文章目录 Tomcat概念自制简易的服务器JavaEE规范Tomcat安装Tomcat启动Tomcat的资源部署直接部署虚拟映射 Tomcat的设置 Tomcat 概念 服务器&#xff1a;两层含义。 软件层面&#xff1a;软件&#xff0c;可以将本地的资源发布到网络中&#xff0c;供网络上面的其他用户来访问…