shell入门之函数应用
        【摘要】     最近在学习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,$?;1234567...
    
    
    
    最近在学习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
 - 2
 - 3
 - 4
 - 5
 - 6
 - 7
 - 8
 - 9
 

注意几个问题: 
 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
 - 2
 - 3
 - 4
 - 5
 - 6
 - 7
 - 8
 - 9
 - 10
 - 11
 - 12
 - 13
 - 14
 - 15
 - 16
 - 17
 - 18
 - 19
 
输出: 
 
要点: 
 1.第一个输出Linux是第一行代码执行的结果,这是调用了系统函数 
 2.调用uname,系统会优先调用这个脚本中的函数,找到了直接调用,找不到再找系统函数。于是输出my name is lenve 
 3.250是uname函数的返回值 
 4.101是由于num在uname函数中自增1导致的 
 5.21表示如果函数中定义了与函数外部同名的变量,函数内部使用的是内部定义的变量而不是全局变量 
 6.101进一步佐证了第5点
文章来源: wangsong.blog.csdn.net,作者:_江南一点雨,版权归原作者所有,如需转载,请联系作者。
原文链接:wangsong.blog.csdn.net/article/details/46835439
        【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
            cloudbbs@huaweicloud.com
        
        
        
        
        
        
        - 点赞
 - 收藏
 - 关注作者
 
            
           
评论(0)