江南一点雨的专栏

专注Java一百年

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,$?;

这里写图片描述


注意几个问题:
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点


阅读更多
版权声明:本文为sang原创文章,转载请注明出处。 https://blog.csdn.net/u012702547/article/details/46835439
文章标签: linux ubuntu 函数式
所属专栏: 玩转ubuntu
上一篇shell入门之流程控制语句
下一篇shell脚本调试
想对作者说点什么? 我来说一句

shell 入门 shell 入门

2010年04月15日 33KB 下载

shell shell练习 shell入门

2011年03月18日 514B 下载

Korn Shell入门脚本

2010年08月24日 331KB 下载

shell设计入门.TXT shell设计入门

2010年07月09日 60KB 下载

没有更多推荐了,返回首页

关闭
关闭