- 浏览: 149900 次
- 性别:
- 来自: 北京
文章分类
最新评论
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。下面说说它的定义方法,以及调用需要注意那些事项。
一、定义shell函数(define function)
语法:
[ function ] funname [()]
{
action;
[return int;]
}
说明:
1、可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。
2、参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255
实例(testfun1.sh):
#!/bin/sh fSum 3 2; function fSum() { echo $1,$2; return $(($1+$2)); } fSum 5 7; total=$(fSum 3 2); echo $total,$?; sh testfun1.sh testfun1.sh: line 3: fSum: command not found 5,7 3,2从上面这个例子我们可以得到几点结论:
1、必须在调用函数地方之前,声明函数,shell脚本是逐行运行。不会像其它语言一样先预编译。一次必须在使用函数前先声明函数。
2、total=$(fSum 3 2); 通过这种调用方法,我们清楚知道,在shell 中 单括号里面,可以是:命令语句。 因此,我们可以将shell中函数,看作是定义一个新的命令,它是命令,因此 各个输入参数直接用 空格分隔。 一次,命令里面获得参数方法可以通过:$0…$n得到。 $0代表函数本身。
3、函数返回值,只能通过$? 系统变量获得,直接通过=,获得是空值。其实,我们按照上面一条理解,知道函数是一个命令,在shell获得命令返回值,都需要通过$?获得。
二、函数作用域,变量作用范围
先我们看一个实例(testfun2.sh ):
#!/bin/sh echo $(uname); declare num=1000; uname() { echo "test!"; ((num++)); return 100; } testvar() { local num=10; ((num++)); echo $num; } uname; echo $? echo $num; testvar; echo $num; sh testfun2.sh Linux test! 100 1001 11 1001我们一起来分析下上面这个实例,可以得到如下结论:
1、定义函数可以与系统命令相同,说明shell搜索命令时候,首先会在当前的shell文件定义好的地方查找,找到直接执行。
2、需要获得函数值:通过$?获得
3、如果需要传出其它类型函数值,可以在函数调用之前,定义变量(这个就是全局变量)。在函数内部就可以直接修改,然后在执行函数就可以读出修改过的值。
4、如果需要定义自己变量,可以在函数中定义:local 变量=值 ,这时变量就是内部变量,它的修改,不会影响函数外部相同变量的值 。
<script></script>
发表评论
-
Linux date 命令使用技巧
2011-08-04 17:10 989date命令 date命令的功能是显示和设置系统日期和时间 ... -
LDAP over SSL - Modifying Active Directory with PHP
2011-04-29 14:30 2322Some AD objects can be modifi ... -
shell中的加法
2011-03-31 13:43 1461今天搞了半天i=$i+1;因为这句包含在一个较长的shell脚 ... -
Shell #的用法, ${#arrayname[@]}获取数组元素的个数, $arrayname[index]获取属于一个元素 获取数组中的所有元素${arr
2011-03-31 10:35 3970在shell中$#表示输入参数的个数; ... -
设置linux环境变量
2011-03-04 11:29 9861.Linux的变量种类 按变量的生存周期来划分,Lin ... -
Xlib: connection to ":0.0" refused by server的解决方法
2011-03-03 17:00 1059Xlib: connection to ":0.0& ... -
linux的root密码更改
2011-02-24 20:17 854不知道是很久没用的原因还是什么,我的linux的密码竟然 ... -
su与su-的区别(Linux Shell中切换用户)
2011-02-18 12:54 2652前者只是切换了身份,但SHELL环境仍然是原用户的SHEL ... -
在VI编辑器中让所有的字母都变成大写
2011-01-13 10:31 1475在vi中切换到命令行模式(按下ESC),输入以下正则表达 ... -
Linux常用的20个工具
2011-01-06 10:30 1264要监控服务器的运行状况? 尝试一些内建的命令行与少量的外围工具 ... -
tar命令详解
2011-01-05 16:35 821格式: tar 选项 文件目录列表功能: 对文件目录进 ... -
C指针的实质,对底层理解很有好处
2010-12-17 18:06 1580最近对C/C++指针特别感 ... -
网络配置===route命令和netstat命令
2010-12-15 17:03 1246route命令和netstat命令 (netstat - ... -
Linux 网卡配置文件设置
2010-12-15 13:57 12281.配置文件/etc/hosts(本地主机ip地址映射,可以有 ... -
linux设置目录共享
2010-12-10 11:15 9511 vi etc/samba/smb.conf 打开配置文档 ... -
Linux 双击文件夹 不要每次都打开一个新窗口显示
2010-11-25 16:35 1431在打开最顶层文件夹的时候用右键 里面有个浏览文件夹 就可以了 ... -
Linux文件权限详解
2010-11-24 16:24 818一、文件和目录权限概 ...
相关推荐
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。下面说说它的定义方法,以及调用需要注意那些事项
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。下面说说它的定义方法,以及调用需要注意那些事项
Linux Shell编程基础 1.调用shell 2.注释 3.执行shell脚本 ...1.1自定义变量的作用域 2.2将自定义变量转换为只读变量 3.3清除变量 6.Shell数组 1.定义数组 2.引用数组 7.举例 1.猜数字脚本 2.随机数排序
shell查看返回值,shell查看返回值,shell查看返回值,shell查看返回值,
linux超级基础系列——shell变量(本地变量和环境变量 linux超级基础系列——shell变量(本地变量和环境变量
说起函数调用,相信大家也不会陌生,然而对于初学Shell的我来说,Shell中函数调用方式却有点让我不太习惯,自己也走了不少的弯路,因为传递参数时出了一个很“自然”的错误,也让我吃了不少的苦头,所以总结一下...
一、定义函数 代码如下:function fname(){statements;}或 代码如下:fname(){statements;} 二、调用函数 只需要使用函数名,即可调用某个函数:$ fname ; #执行函数 可以传递参数给函数,并由脚本进行访问:fname ...
主要介绍了Linux Shell函数返回值,需要的朋友可以参考下
本文介绍在自定义PowerShell函数时,如何设置返回值的数据类型。PowerShell函数的返回值可以有类型,也可以没有类型,跟输入参数相似。 定义PowerShell函数的返回值类型,要使用OutputType这个指令。将这个指令放...
最近实现了一个shell脚本,功能简单来说就是从文件中按行读取然后将...按照常理shell中的变量默认是全局变量,不会存在变量作用域的问题,于是上网查了下,发现问题出在while上 while循环读取文件中内容有两种写法,一
作用域是我们在日常学习或者工作中经常会遇到的一个问题,下面这篇文章主要给大家介绍了关于Shell中变量作用域的相关资料,文中介绍的非常详细,需要的朋友可以参考借鉴,下面跟着小编来一起学习学习吧。
一、Shell函数定义格式 shell函数定义格式,各部分说明如下: [ function ]等中括号括起来部分—-表示可选(即可有可无) your_function_name部分—-为函数名 your_shell_commands部分—-为函数代码;shell一般以...
Linux 在Shell脚本中使用函数实例详解 Shell的函数 Shell程序也支持函数。函数能完成一特定的功能,可以重复调用这个函数。 函数格式如下: 函数名() { 函数体 } 函数调用方式: 函数名 参数列表 实例:编写...
NULL 博文链接:https://woxiangbo.iteye.com/blog/2392852
linux下的shell编程,本人从事linux下的工作多年,总结了一些经验,希望能够帮助新童鞋快速学习linux,快速掌握shell脚本,提高工作效率
主要介绍了shell自定义函数的6个特点总结,也是使用shell自定义函数的一些注意事项总结,以及小技巧介绍,需要的朋友可以参考下
主要内容: .shell基础 基本介绍,环境,选项,特殊字符 .shell变量 用户定义变量,环境变量,位置变量(shell 参数) .shell script编程 条件测试,循环及重复控制