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;
}
函数参数调用
- funcname param1 param2
函数返回值
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的执行过程
sh -x arg.sh
全局变量
- 不做特殊申明,在shell中的变量都是全局变量
- 在大型脚本中函数慎用全局变量
局部变量
- 定义变量,使用
local
关键字 - 函数内和函数外存在同名变量,函数内部变量覆盖函数外部变量