Shell脚本11 -- 函数

声明:
本文的学习内容来源于B站up主“泷羽sec”视频【shell编程(8) until循环以及函数基本创建调用】的公开分享,所有内容仅限于网络安全技术的交流学习,不涉及任何侵犯版权或其他侵权意图。如有任何侵权问题,请联系本人,我将立即删除相关内容。
本文旨在帮助网络安全爱好者提升自身安全技能,并严格遵守国家法律法规。任何人利用本文中的信息从事违法活动,均与本文作者和“泷羽sec”无关。请读者自觉遵纪守法,合理合法使用相关知识。


Shell 函数是指在 Shell 脚本中封装的一段可以重复调用的代码。它不仅可以减少代码冗余,还能提升脚本的可维护性与扩展性。函数通常包括 创建调用传参返回值 四个部分。


1 函数创建

Shell 函数的定义语法如下:

函数名() {
    # 函数体
}

注意:

  • 函数体内可以是任意 Shell 脚本命令。
  • 函数名应具有描述性,并避免与系统命令或变量名冲突。

示例:定义一个简单函数

DemoFunc() {
    echo "hello world"
}

此代码定义了一个名为 DemoFunc 的函数,函数体的内容为输出字符串 "hello world"


2 函数调用

定义函数后,可以通过直接输入函数名来调用它。

示例:调用 DemoFunc 函数

DemoFunc

执行结果:

hello world

注意: 函数定义与调用顺序无严格要求,但在函数调用时,函数必须已定义。


3 函数传参

Shell 函数可以接收参数,通过 $1$2 等特殊变量来引用这些参数:

  • $1 表示第一个参数。
  • $2 表示第二个参数,以此类推。

示例:函数接收单个参数

DemoFunc() {
    echo "hello world"
    echo "My name is $1."
}

DemoFunc xiaoyu

执行结果:

hello world
My name is xiaoyu.

在函数调用时传入参数 xiaoyu,并通过 $1 引用该参数。

示例:函数接收多个参数

DemoFunc() {
    echo "hello world"
    echo "My name is $1, and my age is $2 years old."
}

DemoFunc xiaoyu 27

执行结果:

hello world
My name is xiaoyu, and my age is 27 years old.

此处 $1$2 分别引用传入的两个参数。


4 函数返回值

Shell 函数的返回值通常通过 return 指定,范围为 0-255,或通过全局变量(如 $? 或自定义变量)返回。

示例:通过 return 返回值

DemoFunc() {
    return 42
}

DemoFunc
echo "Function returned: $?"

执行结果:

Function returned: 42

示例:通过变量返回值

DemoFunc() {
    local result=$(( $1 + $2 ))
    echo $result
}

sum=$(DemoFunc 10 20)
echo "Sum is $sum"

执行结果:

Sum is 30

解析: 函数通过 echo 输出结果,调用函数时用 $() 捕获返回的值并赋予变量 sum


5 总结

功能关键点示例代码
创建函数使用 函数名() 定义函数;函数体写在大括号 {}DemoFunc() { echo "hello world"; }
调用函数直接输入函数名调用DemoFunc
传递参数使用 $1$2 等引用参数DemoFunc xiaoyu 27
返回值使用 return 返回状态码,或通过 echo 输出捕获结果sum=$(DemoFunc 10 20)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值