Shell 编程3(函数)
来源:互联网 发布:淘宝旧版本4.1.2下载 编辑:程序博客网 时间:2024/05/22 01:33
1 在脚本中定义函数
(1) 使用关键字function 来定义函数。
function name(){
……
……
}
命名规则:都由小写字母和下划线组成,并以字母开头
不要使用命令作为函数名称
不要在函数名中使用特殊字符
函数名之外应该尽量体现其功能
2 在脚本中使用函数
#!/bin/bash function hello(){ echo"hello world"} hello # 直接使用即可
eg2
directory(){ let"filenum = 0" let"dirnum = 0" ls echo"" forfile in $( ls ) do if[ -d $file ] then let "dirnum = dirnum + 1" else let "filenum = filenum + 1" fi done echo "the number of file is $filenum" echo "the number of dirnum is $dirnum"} directory
3 向函数传递参数
使用位置变量$1,$2,$3等传递参数
例子1
#!/bin/bash function a(){ echo$1} a "hello world"
运行结果
Hello world
例子2
#!/bin/bashhalf(){ let"n = $1" let"n = n/2" echo"in function halt is $n"} let "m = $1"echo "before function halt m is$m"half $mecho "after function half m is$m"
运行结果:
anders@anders-virtual-machine:~/code/shell/function$./param1.sh 10
before function halt m is 10
in function halt is 5
after function half m is 10
4 函数返回值
使用 变量来完成函数返回值
例子1
#!/bin/bashfunction a(){ d=$1}a "hello world" echo d=$d
运行结果:
anders@anders-virtual-machine:~/code/shell/function$./returnv1.sh
d=hello world
获取函数是否执行成功
可以使用$? 这个表示前一个命令的执行状态
5 返回函数的执行状态
手动的返回函数的执行状态,可以在函数最后使用return语句。Return 的使用方法和取值如下
return: 将函数最后一条命令的执行状态作为其状态信息返回
reurn0: 返回函数成功执行的信息
reutn1: 返回函数错误的信息
当脚本执行到return 命令时,无论还有多少语句没有执行,脚本都会立即设置函数执行状态并且返回
6 函数调用函数
直接调用即可
#!/bin/bashfunction a(){ echo"a"} function b(){ echo"b"} function c(){ echo"c"} function d(){abc} d
7 函数文件
将众多的函数 变量放入一个单独的脚本内。
调用函数文件格式: . ./***.sh
Eg 函数文件 func.sh
#!/bin/bashfunction a(){ echo"aa"} function b(){ echo"bb $1"}
调用文件 callFunc.sh
#!/bin/bash. ./s10.shab "123"
(注意:第二行: . ./s10.sh 具体原理是 用到的是 source 命令 即点命令 然后跟着的是 文件名,./代表当前路径)
运行:
anders@anders-virtual-machine:~/code/shell/function$./callFunc.sh
aa
bb hello
8 局部变量和全局变量
在Linux shell中可以通过local关键字来函数中声明局部变量 , 局部变量局限在函数范围内。
此外函数也可以函数外的局部变量,如果一个局部变量和一个全局变量名字相同,则在函数中局部变量会覆盖掉全局变量
#!/bin/bashtext="globalvar"#全局变量function fn(){ local text="local var"#局部变量覆盖掉全局变量 echo$text;} fn echo $text
9 函数递归
Linux Shell中可以递归调用函数,即函数可以直接或间接调用其自身。在递归调用中,主调函数又是被调函数。执行递归函数将反复调用其自身,每调用一次就进入新的一层。
一个函数递归调用
#!/bin/bash
#递归调用函数
foo()
{
read y
foo $y
echo "$y"
}
#调用函数
foo
exit 0
(1)使用局部变量的递归
使用局部变量进行递归一般是针对数值运行来使用的。阶乘运算是一个使用局部变量的递归调用过程,实现了n! 的运算,其可以通过下面的公式表示:
n!=1 (n=0)
n!=n*(n-1)! (n>=1)
按照该公式可实现对阶乘的运算,由于该阶乘运算中存在终止条件“0!=1”,所以可以使用函数递归来实现该运算。
- Shell 编程3(函数)
- shell 脚本编程学习(六) 函数
- Shell编程之 函数
- shell编程函数运用
- shell 编程之函数
- shell 编程-函数
- shell编程-创建函数
- Shell编程(七)---函数
- shell编程基础------函数
- Shell编程(5):函数
- shell编程基础(3)
- shell 编程基础(3)
- Shell编程基础(3)
- Shell编程之函数笔记
- shell编程之函数基础
- Shell 编程 语法 变量 函数
- shell编程之函数基础
- shell编程高级之函数
- 今天蛋筒把vmware升级到9.0版本,结果还得重新找个破解码。 0Y6UC-DF2EJ-CZ0Z1-LKCN0-C29JW 还有在网上找了有效。 本文固定链接: http://www.zhqhlbt
- STM32的IO口的设置
- ubuntu12.04下安装jdk详细步骤
- 你必须知道的28个HTML5特征、窍门和技术
- Javascript 密码强度
- Shell 编程3(函数)
- shortcut for adjusting your code format
- C#同步调用和异步调用
- 拷贝构造函数详解
- 理解Project2007中的视图
- mysql专题
- 开源组件actionbarsherlock的使用
- 删除服务mysql
- WebViewClient与WebChromeClient的区别