Shell编程基础(十二)函数

概念

和其他编程语言一样,函数作为一种封装代码块,以提高代码复用性和可维护性的存在。
记住一点,先定义,再使用

定义

shell 函数的创建方式
function() 二选一

  • function 函数名 空格{
    xxxx
    return 返回码(0-255)(不指定时,以函数内最后一条命令的返回码返回,一般来讲0代表成功,其他错误代表各种异常,根据实际情况设计返回码)
    }
  • 函数名 () 空格{
    xxx
    return 返回码(0-255)
    }

调用函数

调用函数直接写函数名称即可,不要写(),如果有参数,直接写在函数名后面,多个参数以空格隔开(和脚本传参类似)。

脚本及函数返回值

如果 函数/脚本 明确指定了 return ,则以return 的值返回;否则以最后一句命令执行结果返回。

return 的值,只能为[0-255]的值。

如果想要返回其他值,可以间接利用 echo 定义变量的方式,但是要注意,函数内只能有一个echo,否则会最终结果会拼接在一起

语法类似
function my_function1() {
xxxxx
echo result
}

result=my_function1

#!/bin/bash
add()
{
echo $[$1 + $2]
}
res=`add $1 $2`
echo "最终返回结果"$res

系统函数

  • basename
    获取脚本名称,还可以去掉脚本后缀

基本语法
basename script [suffix:去掉指定后缀,不加时,展示完整文件名]

# 保留后缀
basename /opt/test.sh
test.sh

#去掉后缀
basename /opt/test.sh .sh
test
  • dirname
    从文件绝对路径中提取目录
    参数没有 / 时,返回 .

基本语法
dirname absolute_path

[root@test-centos sh]# dirname x.sh
.

[root@test-centos sh]# dirname /opt/test/sh/x.sh
/opt/test/sh

综合脚本

#!/bin/bash

function f1 {
 echo "调用了f1..."
echo "函数的参数:" $1
return 0
}

f1 1111
if [[ $? -eq 0 ]]
then
echo "f1 执行成功"
else
echo "f1 执行失败"
fi

echo "脚本的参数:" $1

f2() {
  echo "调用了f2..."
  echo "函数f2 的参数:" $1
  return 9
}
f2 222
if [[ $? -eq 0 ]]
then
echo "f2 执行成功"
else
echo "f2 执行失败"
fi

执行脚本

bash function1.sh 9
调用了f1...
函数的参数: 1111
f1 执行成功
脚本的参数: 9
调用了f2...
函数f2 的参数: 222
f2 执行失败
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值