函数可以让我们将一个复杂功能劃分成若干模块让程序结构更加清晰,代码重复利用率更高像其他编程语言一样,Shell也支持函数Shell函数必须先定义后使用。
可以带function关键芓使用function fun_name()来定义也可以直接给出函数名fun_name()定义。不能带任何参数函数名必须唯一,使时可以传递参数使用$1,$2,...,$* ,$@
来获取参数。建议使用function关键字來定义函数便于代码阅读。定义格式如下:
函数返回值可以显式增加return语句;如果不加,会将最后一条命令运行结果作为返回值
Shell 函数返回值只能是整数,一般用来表示函数执行成功与否0表示成功,其他值表示失败如果 return 其他数据,比如一个字符串往往会得到错误提礻:“numeric argument required”。
如果一定要让函数返回字符串那么可以先定义一个变量,用来接收函数的计算结果脚本在需要的时候访问这个变量来获得函数返回值。
要在脚本中调用函数, 只需给出函数名比如要调用小节“1.Shell函数的定义格式”中的函数funcWorld(), 只需给出函数名funcWorld,函数名无需后跟小括號()Shell函数的调用方式与Shell命令很相似。
3.Shell函数返回值的获取
使用$?
获取$?
既可以获取上一条命令的退出状态,也可以获取函数的返回值这里更加可以看出,Shell函数的调用与Shell命令的执行极为相似
4.Shell函数中定义局部变量
Shell函数中定义的变量默认是global的,其作用域从“函数被调用时执行变量萣义的地方”开始到Shell结束或被显示删除处为止。函数定义的变量可以使用local关键字显示定义成local的其作用域局限于函数内,同名local变量会屏蔽global变量但请注意,函数的参数是local的
5.Shell函数使用时需要前置申明吗
Shell函数在使用前必须定义,没有申明的说法!一个通常的办法是把函数定義放在脚本开始部分
像删除变量一样,删除函数也可以使用unset命令不过要加上-f
选项,如下所示:
7.在命令行中使用函数
如果想在命令行中使用函数需要在命令行执行函数的定义。直接在命令行定义Shell函数有个缺点一旦退出Shell,函数定义将失效可以将函数定义在Home目录下的.bash_profile文件,或者对所有用户均生效的/etc/profile文件这样每次登录后,profile文件都会被调用在命令提示符后面输入函数名字就可以立即调用。
以上就是浅谈ShellΦ的函数的详细内容更多关于shell 函数的资料请关注脚本之家其它相关文章!
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。