【Unix/Linux.Shell Script】函数

在shell中还可以定义函数。函数实际上也是由若干条shell命令组成的。因此它与shell程序形式上相似的,

函数定义

函数定义的基本格式为:

[function] 函数名() #函数名前的function可以省略
{
    若干个命令行
}


所有函数在使用前必须定义,这意味着必须将函数放在脚本开始部分。或者将它们放在另一个独立文件中且以点号 . 命令来取用它们。

函数在定义时不用带参数说明。


函数内的变量

函数没有提供局部变量,因此所有的函数都与父脚本共享变量;必须小心留意不要修改脚本里不期望被修改的东西。


函数返回值

使用return命令,return命令格式为:

return [exit-value]

return返回退出值(整数值)给调用它的脚本。


如果未提供参数,则使用默认退出状态,也就是最后一个执行的命令的退出状态。因此,严禁的shell函数写法为:

return $?

因为return命令会返回一个退出值给调用者,所以可以在if while语句里使用函数。例如,使用函数取代test所执行的字符比较:

#!/bin/bash
equal() {
	case "$1" in
		"$2") return 0 ;;    # match
	esac
	return 1                     # unmatch
}

if equal "test1" "test2"; then
	echo "match"
else
	echo "unmatch"
fi



函数调用

调用函数的格式为:

函数名 参数1 参数2 ... ...

向函数传递参数就像在一般脚本中使用位置变量$1, $2, ... ...一样。函数去的所传参数后,将原始参数传回shell脚本,因此最好先在函数内重新设置变量保存所传参数。

父脚本中的位置参数临时地被函数参数锁隐藏。当函数完成时,原来的命令行参数会恢复


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值