[Linux][Shell][Shell函数]详细讲解
DieSnowK 2024-07-17 14:07:02 阅读 77
目录
1.创建函数2.执行函数3.给函数传入参数4.返回值5.函数中处理变量1.全局变量2.局部变量
1.创建函数
语法:关键字 或 C风格
<code>function name
{
commands
}
name()
{
commands
}
2.执行函数
执行Shell函数,直接写函数名即可,无需添加其他内容函数必须先定义,再执行,Shell脚本自上而下加载函数体内定义的变量,称之为局部变量
函数内,使⽤local
关键字,定义局部变量 函数体内需要添加return
语句,作⽤是退出函数,且赋予返回值给调⽤该函数的程序return
语句和exit
不同
return
:结束函数的执⾏,返回⼀个(退出值、返回值)exit
:结束Shell环境,返回⼀个(退出值、返回值)给当前的shell 函数如果单独写⼊⼀个⽂件⾥,需要⽤source
读取
本质:读取到当前环境变量中
3.给函数传入参数
传参和调用形势类似于在命令行中给一个脚本传入参数
SnowK()
{
echo "传入的参数为$1 $2 $3, 共 $# 个"
}
SnowK I am DieSnowK
示例:URL检测脚本
#!/bin/bash
Usage()
{
echo "Usage: $0 url"
exit 1
}
# 程序开发的习惯,设置一个入口函数,对需要执行的函数统一管理
CheckUrl()
{
wget --spider -q -o /dev/null --tries=1 -T 5 $1
if [ $? -eq 0 ]
then
echo "$1 is Yes"
else
echo "$1 is No"
fi
}
main()
{
if [ $# -ne 1 ]
then
Usage
fi
CheckUrl $1
}
# $* -> 将所有传入进来的参数,当作一个整体,是常见用法
main $*
4.返回值
函数结束,有状态码
通过$?
获得用return
可以制定特殊的退出状态码 这种方式有一个坑
函数结束后应⽴即取返回值
否则会被覆盖丢失 退出状态码在0~255之间
5.函数中处理变量
1.全局变量
默认情况下,脚本⾥定义的任何变量都是全局变量,只要不是写在函数体内
2.局部变量
⽆需在函数中使⽤全局变量,函数内部使⽤的任何变量都可以被声明为局部变量,为了实现这⼀点,只需要加上local
关键字即可
func()
{
local temp=$[ $value + 5 ]
result=$[ $temp * 2 ]
}
下一篇: 在 Linux 上轻松安装 pip:简单易懂的指南(linux中安装pip)
本文标签
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。