shell函数的定义
# 方法一
function name
{
command
...
command
}
# 方法二
name()
{
command
...
command
}
函数的调用
- 直接使用函数名调用, 可以将函数名想象成shell的一条命令
- 函数内部可以使用参数
$1 $2 ... $n
- 调用函数:
funcation_name $1 $2
# 监听nginx是否正常启动
this_pid=$$
ps -ef | grep nginx | grep -v grep | grep -v $this_pid &> /dev/null
if [ $?-eq 0 ]; then
echo "nginx is running well"
else
systemctl start nginx
fi
函数传参数
function name
{
echo $1;
echo $2;
}
函数参数调用
函数返回值
return
return的返回值只能返回1-255的整数9;函数使用return返回值,通常只是用来供其他调用获取状态,因此通常仅返回0或1;0表示成功,1表示失败。
echo
使用echo可以返回任何字符串列表结果;通常用于返回数据,如一个字符串或列表值。
this_pid=$$
function is_nginx_running
{
ps -ef | grep nginx | grep -v grep | grep -v $this_pid &> /dev/null
if [ $? -eq 0 ]; then
return 0
else
return 1
if
}
is_nginx_running && echo "Nginx is running" || "Nginx is stop"
查看nginx的执行过程
全局变量
- 不做特殊申明,在shell中的变量都是全局变量
- 在大型脚本中函数慎用全局变量
局部变量
- 定义变量,使用
local
关键字
- 函数内和函数外存在同名变量,函数内部变量覆盖函数外部变量
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现