码迷,mamicode.com
首页 > 系统相关 > 详细

shell入门之函数应用

时间:2015-07-11 09:15:02      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:linux   ubuntu   函数式   

最近在学习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点


版权声明:本文为博主原创文章,未经博主允许不得转载。若有错误地方,还望批评指正,不胜感激。

shell入门之函数应用

标签:linux   ubuntu   函数式   

原文地址:http://blog.csdn.net/u012702547/article/details/46835439

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!