Linux shell入门之函数应用
最近在学习Linux shell编程,文中若有错误的地方还望各位批评指正。
先来看一个简单的求和函数
#!/bin/bash #a test about function f_sum 7 8 function f_sum(){ return $(($1+$2)); } f_sum 3 5; total=$(f_sum 3 6); echo $total,$?;
注意几个问题:
1.shell是逐行执行,所以要在函数声明之后才可调用,否则会有错误
2.我们要获得函数的返回值只能通过$?
来获得,不可以通过变量拿到返回值。
再看看关于变量作用域的测试:
#!/bin/bash #a test about function echo $(uname) num=100 uname(){ echo "my name is lenve" ((num++)) return 250 } changeVar(){ local num=20 ((num++)) echo $num } uname; echo $? echo $num; changeVar; echo $num;
输出:
要点:
1.第一个输出Linux是第一行代码执行的结果,这是调用了系统函数
2.调用uname,系统会优先调用这个脚本中的函数,找到了直接调用,找不到再找系统函数。于是输出my name is lenve
3.250是uname函数的返回值
4.101是由于num在uname函数中自增1导致的
5.21表示如果函数中定义了与函数外部同名的变量,函数内部使用的是内部定义的变量而不是全局变量
6.101进一步佐证了第5点
相关推荐
firefaith 2020-10-30
以梦为马不负韶华 2020-10-20
wangzhaotongalex 2020-09-22
jarrygao 2020-11-02
woaimeinuo 2020-10-21
laisean 2020-09-01
libao 2020-09-16
卖口粥湛蓝的天空 2020-09-15
tianhuak 2020-11-24
彼岸随笔 2020-10-20
yutou0 2020-10-17
applecarelte 2020-10-16
ourtimes 2020-10-16
touchfuture 2020-09-16
huha 2020-10-16
laisean 2020-11-11
大牛牛 2020-10-30
liguojia 2020-10-20
wangzhaotongalex 2020-10-20
JohnYork 2020-10-16
Julyth 2020-10-16
laisean 2020-09-27
flycappuccino 2020-09-27
liguojia 2020-09-27
流年浅滩 2020-10-23
liujianhua 2020-10-22
tufeiax 2020-09-03
vvu 2020-09-16
Yyqingmofeige 2020-08-18
zhushixia 2020-08-17