Linux-Shell脚本编程-学习-8-函数

举报
DreamLife 发表于 2022/04/14 22:22:09 2022/04/14
【摘要】   在这章往后的学习中,我讲尽可能详细的讲书中讲到的都记录到这里,以便以后方便查看。   什么是函数,函数就是一段代码,这段代码可以在我们需要的位置调用,那么这段代码就叫做函数。   在Shell中,定义一个函数有两种方法。 1. 使用关键字 function function name {...

 

在这章往后的学习中,我讲尽可能详细的讲书中讲到的都记录到这里,以便以后方便查看。

 

什么是函数,函数就是一段代码,这段代码可以在我们需要的位置调用,那么这段代码就叫做函数。

 

在Shell中,定义一个函数有两种方法。

1. 使用关键字 function

function name

{

}

 

#!/bin/bash

function func1
{
        echo " this is a function"

}

count=1
while [ $count -le 5 ]
do
        func1
        count=$[$count +1 ]
done
echo " the loop end"


这种方式有种Shell 的感觉,那么第二种就有一种我们普通常见的函数的感觉了

 

name()

{

}

 

#!/bin/bash

function func1
{
        echo " this is a function"

}
func2()
{
        echo " this is the function two"
}


count=1
while [ $count -le 5 ]
do
        func1
        func2
        count=$[$count +1 ]
done
echo " the loop end"


这里在定义函数的时候要注意,如果我们在定义函数前使用了函数。那么就会提示我们找不到这个命令了

 

 

#!/bin/bash

function func1
{
        echo " this is a function"

}


count=1
while [ $count -le 5 ]
do
        func1
        func2
        count=$[$count +1 ]
done
func2()
{
        echo " this is the function two"
}
echo " the loop end"

如果是这样的话,那么func2就会报错了

 


 

 

#!/bin/bash

function func1
{
        echo " this is a function"

}


func1()
{
        echo " this is the recover function"
}


count=1
while [ $count -le 5 ]
do
        func1
        count=$[$count +1 ]
done
echo " the loop end"


这样,我们的函数1就会被覆盖,所在Shell脚本中定义函数的时候一定要注意名字的唯一性

 

和我们普通编程一样,Shell脚本中的函数也可以有返回值,bash shell会把函数当做一个小型的脚本,运行结束时会返回一个退出状态码。有三种不同的方法可以来为函数生成退出状态码

1. 使用默认的退出状态码

默认的状态码是函数中最后一条命令返回的退出状态码。在函数结束后,使用标准的$?变量来决定函数的退出状态码

 

 

#!/bin/bash

function func1
{
        echo " this is a function"

}


func1()
{
        echo " this is the recover function"
}


count=1
while [ $count -le 5 ]
do
        func1
        echo " the function exit status is: " $?
        count=$[$count +1 ]
done
echo " the loop end"


 

 

 

2. 使用return来返回

 

#!/bin/bash

function func1
{
        value=88
        echo " this is a function"
        return $value
}

:<<!
func1()
{
        echo " this is the recover function"
}
!

count=1
while [ $count -le 5 ]
do
        func1
        echo " the function exit status is: " $?
        count=$[$count +1 ]
done
echo " the loop end"


不过这个的不好支持就在于这里返回的状态码只能是0-255

 

要向返自己的内容,就需要用到第三种方式

文本输出 echo

这里就不哔哔了,今天先到这。等有时间在看

 

后面是在函数中使用变量了

 

文章来源: dreamlife.blog.csdn.net,作者:DreamLife.,版权归原作者所有,如需转载,请联系作者。

原文链接:dreamlife.blog.csdn.net/article/details/52785280

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。