shell-函数学习笔记二

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关键字
  • 函数内和函数外存在同名变量,函数内部变量覆盖函数外部变量
posted @ 2022-11-05 17:04  phper-liunian  阅读(23)  评论(0编辑  收藏  举报