【Linux Shell脚本编程】函数的定义与调用

tanglu 12188 2019-04-12

一、如何在Shell中定义函数语法

#标准写法
function 函数名(){
命令
}

#简写
函数名(){
命令
}


二、在Shell中调用函数

定义的函数必须在脚本中引用才会生效,引用函数时只需要直接使用函数名即可,可以把函数名理解成一条命令

#定义一个函数名为name并引用,执行脚本后会输出"My name is Tom",
cat function.sh  
#!/bin/bash
name(){
echo "My name is Tom"
}

name


三、Shell函数传参

在Shell中允许使用位置变量来给函数传参,比如"sh test.sh 10 - 5",这里的10和5就是在调用函数时的$1、-为$2、5为$3

cat test.sh
#!/bin/bash
function calcu
{
  case $2 in
    +)
      echo "`expr $1 + $3`"
    ;;
    -)
      echo "`expr $1 - $3`"
    ;;
    \*)
      echo "`expr $1 \* $3`"
    ;;
    /)
      echo "`expr $1 / $3`"
    ;;
  esac
}


calcu $1 $2 $3


四、Shell函数的返回值

在函数体中通过return语句来退出函数,并且可以赋予一个返回值给脚本。return和exit不同之处在于exit是退出整个脚本,而return只是结束函数。如果没有为函数定义return,则以最后一条命令的运行结果作为返回码,也就是$?

function1.png


在一个脚本中定义的函数只能在该脚本中调用,不能跨脚本。如果多个脚本要调用同一个功能的函数的话难道要定义多次吗?其实不用,可以定义一个函数库文件,然后在每个脚本中引用该函数库即可。这个可以参考系统默认的一些启动脚本,都会在脚本最开始运行一次functions库文件来调用函数

functions2.png

 

五、Shell函数库的定义与使用

对于有可能会重复使用的代码可以将其封装成函数文件,然后再由其它脚本进行调用

#!/bin/bash
. /shell/my_function   #调用了一个函数文件
add 1 2         #函数文件里又定义了add的功能,所以这里就可以直接在脚本中使用


版权声明
本站所有文章均为原创,转载请注明出处!小站维护不易,如果对您有所帮助,希望能点击一下站内广告,谢谢!
上一篇:FastDFS配置与使用教程
下一篇:ELK Stack插件——Analyze中文分词
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

微信二维码