1. 概述
把一堆代码,起个名字 。
对脚本中重复使用到的代码,设置函数,精简脚本的内容。
让脚本更加的规范。
- 应用场景:
- 在书写脚本的时候,尽量使用函数,规范脚本。
- 让脚本的开发,更加模块化。
- 方便后期调试,调试的时候只需要注释函数即可。
2. 格式
#定义方式01 最完整
function show() {
命令
命令
内容
return n #函数的返回值
}
#定义方式02 精简写法 一般使用这一种.
show() {
命令
命令
内容
return n #函数的返回值
}
#定义方式03 最完整
function show {
命令
命令
内容
return n #函数的返回值
}
案例1. 检查ip或url是否可以访问 -函数化⭐
#!/bin/bash
#1.vars
read -p "请输入待检查的ip或域名:" urls
#2.检查urls变量
function chk_url_empty() {
if [ -z "$urls" ] ;then
echo "请重新输入: $0 ip或域名"
exit 1
fi
}
#3.for 循环
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
}
main() {
chk_url_empty
chk_ping
}
main
3. 函数传参
- 函数传参与脚本传参类似。使用$xxxxx形式进行。
位置参数 | shell脚本中 | 函数中 |
---|---|---|
$n | 脚本的第n个参数 | 函数的第n个参数 |
$0 | 脚本的名字 | 脚本的名字 |
$# | 脚本的参数个数 | 函数的参数个数 |
$@ 、$* | 脚本的所有参数 | 函数的所有参数 |
案例2. 函数传参案例⭐
[root@web01 /service/scripts]# cat fun_params.sh
#!/bin/bash
show() {
cat <<EOF
show函数的参数个数:$#
show函数的所有参数:$*
$1.com
$1.cn
$1.org
$1.企业
$1.icu
$1.hello
EOF
}
show $1 #这是脚本的第1个参数
show $* #这是脚本的所有参数
[root@web01 /service/scripts]# bash fun_params.sh kyle ni hh
show函数的参数个数:3
show函数的所有参数:kyle ni hh
kyle.com
kyle.cn
kyle.org
kyle.企业
kyle.icu
kyle.hello
标签:脚本,Shell,函数,show,url,编程,参数,urls
From: https://www.cnblogs.com/kyle-7Qc/p/18580317