Shell脚本入门 06:函数与模块化
Posted Naisu Xu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell脚本入门 06:函数与模块化相关的知识,希望对你有一定的参考价值。
目的
函数与模块化可以让相同功能的代码重复使用,这对于开发复杂项目来说是必须的,这篇文章将对相关内容做个说明。
函数
定义函数
Shell中函数的定义方式如下:
function name()
statements
return value
function
可以省略不写; name
是函数名; statements
是要执行的语句; return value
为返回状态,取值 0~255
,通常 0
表示成功,其它值表示失败,这行也可以省略,省略的时候函数的返回状态就是函数中最后一条命令的返回状态(当然这种情况下更加严谨的方式是写 return $?
)。
调用函数
调用函数只要给出函数名就行,如果要传递参数则可以向使用命令那样直接在后边用空格分隔参数,函数内部可以使用Shell的特殊变量来使用这些传入的参数:
返回值
Shell函数中 return
并不是用来给出返回值的,所以函数处理完相应给返回值得换个方式。
最简单的方式就是把返回值传递给全局变量。
比较常用的方式是在函数内部使用 echo
或者 printf
等输出返回信息,然后再调用函数时使用 $( )
来接收返回信息:
模块化
通常在编写较复杂项目的时候会把不同功能的代码写在不同的文件中,然后在使用的时候互相调用。在Shell中 source
命令来实现这个功能,当然在编写时还要注意重复引入的问题。
模块代码示例如下:
#!/bin/bash
if [ -n "$__MODULE_SH__" ]; then # 如果__MODULE_SH__非空
return # 退出当前source操作,避免后面的代码被重复执行
fi
__MODULE_SH__='module.sh' # 第一次执行时声明并赋值
# 写下来编写模块真正的功能代码
其它脚本引用模块示例:
#!/bin/bash
source module.sh # 引入模块
# 编写功能代码
总结
Shell中函数与模块化编写使用还是比较简单的。
以上是关于Shell脚本入门 06:函数与模块化的主要内容,如果未能解决你的问题,请参考以下文章