20.16

20.16 shell脚本中的函数(上)


函数,是一个子shell,代码段,定义完函数后可以引用它。

函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可。

functin f_name(){

command

}

函数必须要放在最前面

示例1

1 编写脚本

#!/bin/bash
function inp() {
  echo $1 $2  $3 $0 $#
}
input 1 a 2


解释:

#!/bin/bash

function inp() { inp是参数的名字

  echo $1 $2 $3 $0 $# $1第一个参数,$2第二个参数,$3第三个参数,$0文件的名字,$#统计参数

}

inp 1 a 2 输入函数名称inp直接调用函数,输出结果是 $1=a $2=a $3=2


2 执行输出

[root@AliKvn shell]# sh fun1.sh 

1 a 2 fun1.sh 3

[root@AliKvn shell]# sh -x fun1.sh 

+ inp 1 a 2

+ echo 1 a 2 fun1.sh 3

1 a 2 fun1.sh 3


编写第二种脚本

[root@AliKvn shell]# vim fun1.sh 


#!/bin/bash

function inp() {

  echo "1  $1" 

  echo "a $2"

  echo "2 $3" 

  echo "fun1.sh $0"

  echo "5 $#"

}

inp 1 a 2 3 adf


以上脚本,正确的输出结果应该是与echo里面除了$参数之外的参数对应,就是说 正常的话 应该输出是对应的.

执行过程

[root@AliKvn shell]# sh  fun1.sh 

1  1

a a

2 2

fun1.sh fun1.sh

5 5


另一种方法,输出$1

[root@AliKvn shell]# vim fun2.sh 


#!/bin/bash

function inp() {

  echo "1  $1" 

  echo "a $2"

  echo "2 $3" 

  echo "fun1.sh $0"

  echo "5 $#"

}

inp $1 $2 $3


输出变量

[root@AliKvn shell]# sh -x fun2.sh 1  

+ inp 1

+ echo '1  1'

1  1

+ echo 'a '

+ echo '2 '

+ echo 'fun1.sh fun2.sh'

fun1.sh fun2.sh

+ echo '5 1'

5 1

[root@AliKvn shell]# sh -x fun2.sh 1  2

+ inp 1 2

+ echo '1  1'

1  1

+ echo 'a 2'

a 2

+ echo '2 '

+ echo 'fun1.sh fun2.sh'

fun1.sh fun2.sh

+ echo '5 2'

5 2

[root@AliKvn shell]# sh -x fun2.sh 1  2 3

+ inp 1 2 3

+ echo '1  1'

1  1

+ echo 'a 2'

a 2

+ echo '2 3'

2 3

+ echo 'fun1.sh fun2.sh'

fun1.sh fun2.sh

+ echo '5 3'

5 3


猜你喜欢

转载自blog.51cto.com/13578154/2123189
今日推荐