Shell之函数-yellowcong

本文深入探讨了Bash脚本中的函数使用方法,包括无返回值、带返回值的函数及read函数的应用。通过实例展示了如何定义函数、使用read进行输入处理,并介绍了函数返回值的特殊性及其在脚本中的正确应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不带返回值的函数,带返回值的函数,还有read函数等。
在函数中,参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 返回值,只能是0-255的数字,不能是字符串,淡腾啊。。。。。。。。。。

案例1 -默认返回值的函数

这个就是简单的函数调用,没有任何返回值的函数

#创建并赋予执行权限
touch fun.sh && chmod +x $_

代码

#!/bin/bash

#定义test函数
test(){
        echo "hello" $1
}

#判断数据是否为空,如果为空,就打印一句话,否则就去调用test函数
if [ "$1" == "" ]
then

        echo "没有数据"
else
        test $1
fi

这里写图片描述

运行结果
这里写图片描述

案例2-read函数

这个案例里面,使用到了read这个函数,这个函数有换行(read),不换行(read -p)两种

#!/bin/bash


test(){
        echo "hello" $1
        echo "参数个数" $#
        echo "所有参数" $*
}


if [ "$1" == "" ]
then

        echo "没有数据"
        echo "请输入名称"

        #doc 输入带换行的操作
        read name

        #输入但是不换行
        read -p "输入你的年龄" age
        echo 你今年$age#测试
        test $name
else
        test $1
fi
#退出程序
exit 0

这里写图片描述

执行结果,表上红色框的,就是执行起来不换行的read操作

这里写图片描述

案例3-带返回值的函数

对,它几乎就是return和echo不一样,但是有一点一定要注意,不能向标准输出一些不是结果的东西(也就是说,不能随便echo一些不需要的信息),比如调试信息,这些信息可以重定向到一个文件中解决,特别要注意的是,脚本中用到其它类似grep这样的命令的时候,一定要记得1>/dev/null 2>&1来空这些输出信息输出到空设备,避免这些命令的输出。

linux中直接返回的数据是0-255,因为exit或者main函数中的return, 只能使用0~255之间的值. -1 的unsigned值就是255

#!/bin/bash
#autor yellowcong
#email 717350389@qq.com

#定义一个getName函数
getName(){
        #对数据进行判断
        if [ "$1" == "yellowcong" ]
        then
                return 1
        else
                return 2
        fi
}

getName $1
echo "结果"$?

这里写图片描述

执行结果

这里写图片描述

案例4 -字符串返回

通过echo的方式来获取返回值,而不是直接的通过返回来获取

#!/bin/bash
#autor yellowcong
#email 717350389@qq.com

#定义一个getName函数
getName(){
        #对数据进行判断
        if [ "$1" == "yellowcong" ]
        then
                echo "你是yellowcong大哥"
        else
                echo "你是谁,鸟毛"
        fi
}

result=$(getName $1)
echo "结果"$result

这里写图片描述
测试结果
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狂飙的yellowcong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值