【Linux】shell编程4(break语句、continue、exit、shell的函数、返回值return)

这篇具有很好参考价值的文章主要介绍了【Linux】shell编程4(break语句、continue、exit、shell的函数、返回值return)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、循环控制及状态返回值

1、 break

break语句用于从for、while、until或select循环中退出、停止循环的执行。

语法:

break [n]
  • n代表嵌套循环的层级,如果指定了n,break将退出n级嵌套循环。

  • 如果没有指定n或n小于 1,则退出状态码为0,否则退出状态码为n。

  • 一句话总结:跳出当前循环

2、continue

continue语句用于跳过循环体中剩余的命令直接跳转到循环体的顶部,而重新开始循环的下一次重 复。

continue语句可以应用于for、while或until循环。

语法:

continue [n]
  • 一句话总结:跳到当前循环体顶部,重新开始循环

3、exit

exit退出目前的shell,执行exit可使shell以指定的状态值退出。

若不设置状态值参数,则shell以预 设值退出。状态值0代表执行成功,其他值代表执行失败。

exit也可用在script,离开正在执script, 回到shell。

一句话总结:和break类似类似,不过breal是退出循环,exit是退出脚本

4、实例

(1)下面我们来看一个使用break语句的脚本实例:

#!/bin/bash
#如果未指定参数,则打印脚本的使用方法,并返回退出状态码1
[ $# -eq 0 ] && { echo "Usage: $0 command"; exit 1; }
#将位置参数1的值赋给变量match
match=$1
found=0
for dir in /bin /usr/bin
    do
        #遍历目录下的所有文件
        for file in $dir/*
        do
        #如果文件名与指定的参数文件名相匹配,则打印命令已找到,并退出嵌套的for循
环
            if [ $(basename $file) == "$match" ]
            then
            echo "The command $match was found in $dir directory"
            found=1
            #退出for循环
            break
            fi
        done
done
[ $found -ne 1 ] && echo "The command $match not found."
linux return,Linux shell编程,linux,运维,服务器,Powered by 金山文档

(2)再来看一个使用break n语句退出嵌套循环的脚本实例:

#!/bin/bash
#如果未指定参数,则打印脚本的使用方法,并返回退出状态码1
[ $# -eq 0 ] && { echo "Usage: $0 command"; exit 1; }
#将位置参数1的值赋给变量match
match=$1
found=0
for dir in /bin /usr/bin
    do
        #遍历目录下的所有文件
        for file in $dir/*
        do
        #如果文件名与指定的参数文件名相匹配,则打印命令已找到,并退出嵌套的for循
环
            if [ $(basename $file) == "$match" ]
            then
            echo "The command $match was found in $dir directory"
            found=1
            #退出两层的for循环
            break 2
            fi
        done
done
[ $found -ne 1 ] && echo "The command $match not found."
linux return,Linux shell编程,linux,运维,服务器,Powered by 金山文档

(2)和(1)的区别在于:

  • (2)退出了第二层循环,包含break语句的为第一层循环,最外围的for循环为第二层循环;因此在第二层循环时它只在/bin下寻找了是否有ls;

  • (1)只退出了第一层循环,因此它会在/bin /usr/bin都找是否有ls;


(3)break跳出单个循环

#!/bin/bash
for var1 in 1 2 3 4 5 6 7 8 9 10
do
    if [ $var1 -eq 5 ]
    then
        break
    fi
        echo "Iteration number: $var1"
done
    echo "The for loop is completed“

(4)来看一个在循环中使用continue语句的脚本实例:

#!/bin/bash
#如果运行脚本时未指定参数,则打印脚本的使用方法,并返回退出状态码1
[ $# -eq 0 ] && { echo "Usage: $0 directory"; exit 1; }
#如果指定的目录不存在,则打印错误信息,并返回退出状态码1
[ ! -d $1 ] && { echo "Error: The directory $1 does not exist."; exit 1; }
#如果没有成功切换到指定的目录,则打印相应的错误信息,并返回退出状态码1
cd $1 || { echo "Connot cd to the directory $1"; exit 1; }
#遍历指定目录下的所有文件
for filename in $(ls)
do
#如果文件名不包含大写字母,则直接跳转到下一次循环
    if [ $filename != *[[:upper:]]* ]
    then
    #忽略for循环体中剩余的语句直接跳转到下一次循环
    continue
    fi
    #将变量filename中的字母转换为小写
    new='echo $filename | tr 'A-Z' 'a-z''
    #将文件重命名
    mv $filename $new
    echo "The file $filename renamed to $new."
done
  • 执行了continue,他就从for循环里跳出了,如果指定的目录里有包含大写字母的文件,那他就会转换成小写字母。

  • 他能转换成小写是它就没进if fi语句,所以没有跳出循环,依然执行下面的语句。

linux return,Linux shell编程,linux,运维,服务器,Powered by 金山文档
linux return,Linux shell编程,linux,运维,服务器,Powered by 金山文档

二、shell的函数

1、语法

#定义函数方法1
function function_name()
{
commands;commands;commands
.....
}


#定义函数方法2
function function_name #如果有function关键字 可以省略()
{
commands;commands;commands
.....
}


#定义函数方法3,可以省去关键字function
function_name()
{
commands;commands;commands
........
}

#调用函数,直接写出函数名
function_name
#传参数
function_name parameter1 parameter2 parameter3

2、实例

注意:函数需要在调用之前被定义;

#!/bin/bash

function funct1()
{
echo "This is $n times!"
}

n=1
while [ $n -le 5  ]
do
        funct1
        n=$(($n+1))
done
        echo "This is end"
        funct1
        echo "Bye~"
linux return,Linux shell编程,linux,运维,服务器,Powered by 金山文档

#!/bin/bash

function funct1()
{
echo "This is $n times!"

}

function funct1()
{
echo "This is $n loop!"
}

n=1
while [ $n -le 5  ]
do
        funct1
        n=$(($n+1)) 
done
        echo "This is end"
        funct1
        echo "Bye~"
linux return,Linux shell编程,linux,运维,服务器,Powered by 金山文档

函数可以被覆盖,例如上面的例子,前后一共定义了两个funct1,但是调用的时候就只调用了最新定义的funct1;

3、函数的返回值return

return是不会被显示出来的;

#!/bin/bash

funct1()
{
read -p "请输入一个数:" num
echo "这个数的2倍是多少呢?"
return $(($num*2))
}

funct1
echo "这个数的返回值是:$?"
linux return,Linux shell编程,linux,运维,服务器,Powered by 金山文档
#!/bin/bash

funct1()
{
read -p "请输入一个数:" num
echo "这个数的2倍是多少呢?"
}

funct1
echo "这个数的返回值是:$?"

linux return,Linux shell编程,linux,运维,服务器,Powered by 金山文档

如果没有设置return的值,那它就返回函数正常执行的返回值0;

$?获取上一个命令的执行状态返回值;


return 返回值取值范围0-255;如果超过了这个范围,会随机产生一个返回值;文章来源地址https://www.toymoban.com/news/detail-756103.html

linux return,Linux shell编程,linux,运维,服务器,Powered by 金山文档

到了这里,关于【Linux】shell编程4(break语句、continue、exit、shell的函数、返回值return)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C# Break 和 Continue 语句以及数组详解

    它被用于“跳出” switch 语句。 break 语句也可用于跳出循环。 以下示例在 i 等于 4 时跳出循环: 示例: continue 语句在循环中发生特定条件时中断一次迭代,并继续进行下一次迭代。 以下示例跳过了值为 4 的情况: 示例 在 While 循环中使用 Break 和 Continue 您也可以在 while 循环

    2024年01月23日
    浏览(46)
  • 第41讲:Python循环语句中的break和continue语法结构

    在while或者for-in循环语句中想要结束循环,除了使用break跳出循环外,还可以使用continue语句。 break和continue的区别: break用于结束整个循环。 continue用于跳出本次循环,进入下一次循环。

    2024年02月05日
    浏览(54)
  • 第42讲:Python循环语句中的break和continue语法结构

    在while或者for-in循环语句中想要结束循环,除了使用break跳出循环外,还可以使用continue语句。 break和continue的区别: break用于结束整个循环。 continue用于跳出本次循环,进入下一次循环。

    2024年02月06日
    浏览(41)
  • 【Python入门篇】——Python中循环语句(循环中断break和continue)

    作者简介: 辭七七,目前大一,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: Python入门,本专栏主要内容为Python的基础语法,Python中的选择循环语句,Python函数,Python的数据容器等。 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 Python提供continue和

    2024年02月06日
    浏览(44)
  • 第03章_流程控制语句(顺序结构,分支语句,循环语句,break,continue,Scanner,如何获取一个随机数)

    流程控制语句是用来控制程序中各 语句执行顺序 的语句,可以把语句组合成能 完成一定功能 的小逻辑模块。 程序设计中规定的 三种 流程结构,即: 顺序结构 程序从上到下逐行地执行,中间没有任何判断和跳转。 分支结构 根据条件,选择性地执行某段代码。 有 if…els

    2024年01月22日
    浏览(57)
  • 〖大前端 - 基础入门三大核心之JS篇⑱〗- JavaScript的流程控制语句「break 和 continue语句」

    当前子专栏 基础入门三大核心篇 是免费开放阶段 。 推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 大前端全栈架构白宝书专栏, 目前阶段免费开放 , 购买任意白宝书体系化专栏可加入 TFS-CLUB 私域社区。 福利:除了通过订阅\\\"白宝书系列专

    2024年02月05日
    浏览(57)
  • 在使用Python 3中的循环时如何使用break、continue和pass语句

    简介 在 Python 中使用 for 循环 和 while 循环 可以让你以高效的方式自动化和重复任务。 但有时,外部因素可能会影响程序的运行方式。当发生这种情况时,你可能希望程序完全退出循环,跳过部分循环然后继续,或者忽略那个外部因素。你可以使用 break 、 continue 和 pass 语句

    2024年01月24日
    浏览(47)
  • Python的流程控制语句,while循环和嵌套、for循环、break和continue、冒泡排序

    流程控制语句是用于控制程序的执行顺序的语句。在Python中,主要有while循环和嵌套、for循环、break和continue语句、冒泡排序等。 while循环和嵌套: while循环用于多次执行一段代码,直到条件不再满足为止。嵌套是将一个while循环放在另一个while循环内部,实现多层循环。 示例

    2024年01月18日
    浏览(99)
  • 【C语言趣味教程】(11) 循环语句Ⅰ:while 循环 | 循环的类型 | 流程图基础 | 循环的定义 | 死循环 | while 循环嵌套 | break 语句 | continue 语句

        🔗 《C语言趣味教程》👈 猛戳订阅!!! \\\"我们先来思考一个富有哲学性的问题,人类的本质是什么?我们知道,人类的本质就是复读机!那复读机的本质又是什么?复读机的本质就是循环!本章的主题就是循环,我们来好好研究研究,还是和上一章一样,我们先介绍

    2024年02月03日
    浏览(56)
  • shell编程之循环语句与函数

    (1)将命令序列按格式写在一起 (2)可方便重复使用命令序列 (1)使用函数可以避免代码冲突 (2)将大的工程可以分割为若干小的功能模块,代码的可读性更强 3.1方式1: [function] 函数名 () { 命令系列 [return x]————————使用return或exit可以显示地结束函数 } 3.2方

    2024年02月07日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包