shell中函数的使用

  函数是一个脚本代码块,你能够对它进行自定义命名,而且能够在脚本中任意位置使用这个函数。若是想要这个函数,只要调用这个函数的名称就能够了。使用函数的好处在于模块化以及代码可读性强。vim

(1).函数的建立语法bash

  函数的建立方法一:模块化

function 函数名称 {
    命令
}

  函数的建立方法二:函数

函数名称() {
    命令
}

  注意:函数名称在当前脚本必须惟一。spa

  调用函数的方法:blog

函数名称 参数1 参数2 ......

  调用函数时能够传递参数,函数中使用$一、$2......来引用传递的参数。it

(2).函数的使用实例io

  实例1:function

[root@youxi1 ~]# vim a.sh
#!/bin/bash
function fun1 {
    echo "hello world"
}

fun2() {
    echo $[$1+$2]
}

fun1
fun2 1 2
[root@youxi1 ~]# sh a.sh
hello world
3

  实例2:若是存在相同名称的函数,以最后一个为准class

[root@youxi1 ~]# vim b.sh
#!/bin/bash
function fun1 {
    echo "hello world"
}

fun1() {
    echo "This is rewrite"
}

fun1
[root@youxi1 ~]# sh b.sh
This is rewrite

(3).return返回值

  使用return命令来退出函数并返回特定的退出码($?)

[root@youxi1 ~]# vim c.sh
#!/bin/bash
fun1() {
  echo "return 3"
  return 3
  echo "why?"
}

fun1
[root@youxi1 ~]# sh c.sh
return 3
[root@youxi1 ~]# echo $?
3

  注意:return通常是在函数的最后一行,由于一旦执行return命令,该函数后面的命令就不执行了。

  return与exit的区别:return和exit均可以返回退出码,可是不一样的是,return是退出函数,而exit是退出整个脚本。

(4).函数值赋给变量

  以下方实例中显示,此时的函数就至关于一个命令,须要使用$()或``调用。

[root@youxi1 ~]# vim d.sh
#!/bin/bash
fun1() {
  read -p "Input a number:" num
  echo $[num*5]
}

num2=`fun1`  #也能够是$(fun1)
echo $num2
[root@youxi1 ~]# sh d.sh 
Input a number:2
10

(5).外部参数传入函数

  前面已经提到过,调用函数能够在后面跟随参数,函数内部能够使用$n的形式调用。

[root@youxi1 ~]# vim e.sh
#!/bin/bash
fun1() {
  echo $1
}

fun2() {
  echo $1
}

fun3() {
 echo $1
}

fun1 $1
fun2 /root/a.sh
fun3 5
[root@youxi1 ~]# sh e.sh hello
hello
/root/a.sh
5

(6).函数的参数

  在一个脚本当中,函数外的参数,函数能够直接调用,而且函数内的参数,只要运行过函数,外部也能够直接调用。

[root@youxi1 ~]# vim f.sh
#!/bin/bash
num=5
fun1() {
  num2=$[num*10]
}
fun1
echo $num2
[root@youxi1 ~]# sh f.sh
50

  注意:脚本内的参数仅限脚本内使用

相关文章
相关标签/搜索