linux的shell编程的函数,14.Linux shell编程(函数)

这篇博客介绍了Shell脚本中函数的定义和调用,包括函数的基本格式、重命名、传参和返回值。示例展示了如何创建函数,处理函数重名问题,以及如何在函数中使用局部变量和调用库文件中的函数。通过实例解释了函数参数的传递和返回值的获取方法。
摘要由CSDN通过智能技术生成

(创建于2018/2/1)

1.简单的一个函数

1 #!/bin/bash

2

3 function myfunc{ //注意这里没有(),函数名何{之间没有空格导致出错,空格一定要有

4 echo "myfunc"

5 }

6 myfunc //调用函数

创建函数的格式,有两种:

function name {

commands

}

name() {

commands

}

执行后:

tabstop=8root@iZbp11v3y27wpf6mglp2glZ:/user/renzhenming/shell# ./16.sh

./16.sh: line 4: syntax error near unexpected token `echo'

./16.sh: line 4: ` echo "myfunc"'

错在哪里?注意myfunc函数和后边的大括号间需要有空格

正确写法:

#!/bin/bash

function myfunc {

echo "myfunc"

}

myfunc

最好这样,换行防止错误

#!/bin/bash

function myfunc

{

echo "myfunc"

}

myfunc

2.函数重名,也是定义函数的两种方式

1 #!/bin/bash

2

3 function myfunc //去掉function会报错 myfunc: command not found

4 {

5 echo "myfunc"

6 }

7 myfunc

8

9 myfunc() //定义了一个和上边函数同名的函数,区别在于,这里没有使用function 关键字,还多了一个()

//这是两种定义函数的方式

10 {

11 echo "myfunc2"

12 }

13

14 myfunc

执行结果

tabstop=8root@iZbp11v3y27wpf6mglp2glZ:/user/renzhenming/shell# ./16.sh

myfunc

myfunc2

去掉第二个同名函数的小括号

1 #!/bin/bash

2

3 function myfunc

4 {

5 echo "myfunc"

6 }

7 myfunc

8

9 myfunc

10 {

11 echo "myfunc2"

12 }

13

14 myfunc

结果

tabstop=8root@iZbp11v3y27wpf6mglp2glZ:/user/renzhenming/shell# ./16.sh

myfunc

myfunc

myfunc2

myfunc

3.函数传参和返回值

1 #!/bin/bash

2

3 function myfunc

4 {

5 echo $[ $1 + $2 ]

6 }

7

8 value=$(myfunc 10 90)

9 echo "value :$value"

结果

100

4.函数调用局部变量和引入函数库

16.sh

1 #!/bin/bash

2 source ./17.sh //source关键字引入函数库文件

3 //. .17.sh //这种写法也同样是引入库文件,“.”就代表source关键字

4 function myfunc

5 {

6 echo $beaty //使用局部变量

7 }

8 beaty=12

9

10 myfunc

11

12 echo "add value:$(add 10 30)" //调用库文件中的函数

17.sh

1 #!/bin/bash

2

3 function add()

4 {

5 echo $[ $1 + $2 ]

6 }

执行结果

tabstop=8root@iZbp11v3y27wpf6mglp2glZ:/user/renzhenming/shell# ./16.sh

12

add value:40

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值