Shell编程 - 函数篇
Bash 脚本中的函数使用指南
1. 概述
函数是将一段代码封装起来并赋予一个名称的代码块。在 Bash 脚本中,函数可以用来:
-
精简代码:将重复使用的代码封装成函数,减少代码冗余。
-
提高可读性:让脚本更加规范,便于理解和维护。
-
方便调试:调试时只需注释或修改函数即可,不影响其他部分。
应用场景:
-
在编写脚本时,尽量使用函数,使脚本更加模块化。
-
方便后期维护和扩展,提高代码的复用性。
2. 函数的定义格式
2.1 定义方式 01(最完整)
function show() {
命令
命令
内容
return n # 函数的返回值
}
2.2 定义方式 02(精简写法,常用)
show() {
命令
命令
内容
return n # 函数的返回值
}
2.3 定义方式 03(另一种完整写法)
function show {
命令
命令
内容
return n # 函数的返回值
}
3. 函数的使用案例
3.1 案例 1:检查 IP 或 URL 是否可以访问
#!/bin/bash
# 1. 定义变量
read -p "请输入待检查的 IP 或域名: " urls
# 2. 检查 urls 是否为空
function chk_url_empty() {
if [ -z "$urls" ]; then
echo "请重新输入: $0 IP 或域名"
exit 1
fi
}
# 3. 使用 for 循环检查每个 URL
function chk_ping() {
for url in $urls; do
# 4. 使用 ping 检查
ping -c1 "$url" &>/dev/null
# 5. 检查返回值
if [ $? -eq 0 ]; then
echo "${url} 可以访问"
else
echo "${url} 不可以访问"
fi
done
}
# 6. 主函数
main() {
chk_url_empty
chk_ping
}
# 7. 调用主函数
main
运行示例:
请输入待检查的 IP 或域名: 8.8.8.8 baidu.com
8.8.8.8 可以访问
baidu.com 可以访问
4. 函数传参
在 Bash 脚本中,函数传参与脚本传参类似,使用 $n 形式访问参数。
参数对比表
| 位置参数 | Shell 脚本中 | 函数中 |
|---|---|---|
$n |
脚本的第 n 个参数 | 函数的第 n 个参数 |
$0 |
脚本的名字 | 脚本的名字 |
$# |
脚本的参数个数 | 函数的参数个数 |
$@、$* |
脚本的所有参数 | 函数的所有参数 |
4.1 案例 2:函数传参示例
#!/bin/bash
# 定义函数
show() {
cat <<EOF
show 函数的参数个数: $#
show 函数的所有参数: $*
$1.com
$1.cn
$1.org
$1.企业
$1.icu
$1.hello
EOF
}
# 调用函数
show $1 # 传递脚本的第一个参数
show $* # 传递脚本的所有参数
运行示例:
bash fun_params.sh kyle ni hh
show 函数的参数个数: 3
show 函数的所有参数: kyle ni hh
kyle.com
kyle.cn
kyle.org
kyle.企业
kyle.icu
kyle.hello
5. 总结
-
函数的定义:使用
function关键字或直接定义。 -
函数的调用:直接使用函数名。
-
函数传参:使用
$n、$#、$@、$*等特殊变量。 -
应用场景:将重复代码封装为函数,提高代码复用性和可读性。

浙公网安备 33010602011771号