Shell之函数

一、什么是函数

函数就是将相同的代码变成定义成一个代码块,然后七个名字,调用时只需要调用名字即可。

1、函数的优势

  • 节约代码量
  • 代码易读
  • 程序功能模块化

2、函数语法

# 简写
函数名(){
  # 指令
  return 返回值
}

# 规范写法
function 函数名(){
  # 指令
  return 返回值
}

3、函数执行

  • 无参数函数调用

直接调用函数的名称即可,无需带小括号。

  • 有参数函数调用
函数名 参数1 参数2 参数...

(1)在函数体中位置参数($1、$2...、$#、$*、$?、$@)都可以是函数的参数

(2)父脚本中的参数则临时的被函数参数隐藏或者覆盖

(3)$0仍然是父脚本的名称

(4)函数执行完毕后,原来的命令行参数会恢复

二、实例

(一)无参数实例

1、普通方式

#!/bin/sh
t1(){
  echo "Hello World!"   
}
t1 #在脚本中调用函数

上面的脚本中将函数与函数调用写在一起,更优的方式可以将函数与调用分开,可以再写一个调用函数的脚本。

2、优化方式

  • 函数脚本(func2脚本)
#!/bin/sh
t1(){
  echo "Hello World!"   
}
  • 调用函数脚本
#!/bin/sh
scripts_path=/project/scripts/function_scripts/func2
[ -x $scripts_path ]  && . $scripts_path || exit
t1

(二)有参数实例 

#!/bin/sh
t1(){
  echo "$1"     
}
t1 $1

通过下面进行调用即可,将脚本传参变成函数传参:

[root@localhost function_scripts]# sh func3.sh bright
bright
作者:iveBoy
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/shenjianping/p/14364097.html