1、shell函数

1.1、shell函数定义

对于重复出现的代码,在shell中可以定义函数,然后在指定的地方调用即可。便于代码复用,提高开发效率。

定义函数的语法如下:

 function 函数名(){
语句块
返回值
}

示例:

 function hello(){
echo "Hello"
}

2、调用函数

通过函数名称来调用已定义的函数

 function_name

两个数相加的函数与定义:

 #定义函数add
function add(){
a=
b=
val=`expr ${a} + ${b}`
echo "${a} + ${b} is :${val}" }
#调用函数
add

输出:

  +  is :

1.3、带参数的函数

上面的add函数a,b的值已写死,可用性太差。下面传入参数来重写add函数

 #定义函数add
function add(){
#$1表示第一个参数
#$2表示第二个参数
#$n表示第n个参数
a=$
b=$
val=`expr ${a} + ${b}`
echo "${a} + ${b} is :${val}" }
#调用函数
add
add

输出:

  +  is :
+ is :

1.4、函数返回值

 #函数返回值不是必须的,与一般语言的返回值含义不同
#语法 return status_code,表示函数的退出状态
#退出状态是个数字,一般成功为0,失败为1
#$? 用来获取上一个命令的退出状态或返回值。
 #调用函数
add
echo "add func exit code is : $?"

输出:

 add func exit code is : 

假如把add函数执行成功的退出状态定义为200,重写add函数并判断是否执行成功

示例:

 #定义函数add
function add(){
#定义成功状态码
ok_code=
err_code=
a=$
b=$
val=`expr ${a} + ${b}`
if [ $? -eq ]
then
return ${ok_code}
else
return ${err_code}
fi }
#调用函数
add e
if [ $? -eq ]
then
echo "add func run sucess."
else
echo "add func run fail."
fi

输出:

 expr: 非整数参数
add func run fail.

1.5、如果获取函数的处理结果

a、使用全局变量

 #定义函数add
function add(){
#定义成功状态码
ok_code=
err_code=
a=$
b=$
val=`expr ${a} + ${b}`
if [ $? -eq ]
then
return ${ok_code}
else
return ${err_code}
fi }
#调用函数
add
echo "add 1 2 result is : ${val}"

输出:

 add   result is : 

b、在函数内部echo 出变量,在函数外部用$(func_name arg1  argn)捕捉

 #定义函数add
function add(){
a=$
b=$
val=`expr ${a} + ${b}`
echo ${val}
}
#使用$(add )捕捉结果
echo "add 1 2 result is : $(add 1 2)"

输出:

 add   result is : 

推荐使用第二种

1.6、break和continue

break用于退出循环,退出后循环不再执行。

cotinue用于退出本次循环,继续执行下一次循环。

break示例:

 #寻找1~10之间第一个偶数
#找到后即跳出循环,不再继续
for i in `seq `
do
tmp=`expr ${i} % `
if [ ${tmp} -eq ];then
echo $i
#continue
break
fi
done

break输出:

  

continue示例:

 #寻找1~10之间所有的偶数
for i in `seq `
do
tmp=`expr ${i} % `
if [ ${tmp} -eq ];then
echo $i
continue
#下面这句echo永远不会被执行
echo "statement after cotinue"
fi
done

cotinue输出:


shell函数-3的更多相关文章

  1. Shell入门教程:Shell函数详解

    Shell函数类似于Shell脚本,里面存放了一系列的指令,不过Shell的函数存在于内存,而不是硬盘文件,所以速度很快,另外,Shell还能对函数进行预处理,所以函数的启动比脚本更快. 1.函数定义 ...

  2. Shell入门教程:Shell函数的返回值

    shell函数返回值一般有3种方式: 1.return语句(默认的返回值) shell函数的返回值可以和其他语言的返回值一样,通过return语句返回. 比如: #!/bin/bash functio ...

  3. (转)Shell函数

    Shell函数类似于Shell脚本,里面存放了一系列的指令,不过Shell的函数存在于内存,而不是硬盘文件,所以速度很快,另外,Shell还能对函数进行预处理,所以函数的启动比脚本更快. 1.  函数 ...

  4. Linux Shell系列教程之(十五) Shell函数简介

    本文是Linux Shell系列教程的第(十五)篇,更多Linux Shell教程请看:Linux Shell系列教程 函数可以将一个复杂功能划分成若干模块,从而使程序结构更加清晰,代码重复利用率更高 ...

  5. Shell函数的简单应用

    Shell函数的简单应用 在脚本内给函数传参: #!/bin/bash . /etc/init.d/functions CheckUrl (){ curl -I -s $ | head - } Che ...

  6. Shell函数语法

    Shell函数语法 定义函数: function   函数名(){ 指令... } 调用函数,方法1: 函数名 调用函数,方法2: 函数名  参数一   参数二 return在函数里面使用会跳出函数并 ...

  7. shell 函数

    1 shell函数的定义及其调用 shell函数有两种格式: function name { commands } name() { commands } 其中,name为函数名,commands为函 ...

  8. Shell函数:Shell函数返回值、删除函数、在终端调用函数

    函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高.像其他编程语言一样,Shell 也支持函数.Shell 函数必须先定义后使用. Shell 函数的定义格式如下: f ...

  9. Shell函数返回值、删除函数、在终端调用函数

    Shell 也支持函数.Shell 函数必须先定义后使用. Shell 函数的定义格式如下: function_name () { list of commands [ return value ] ...

  10. Linux Shell 函数返回值

    Shell函数返回值,常用的两种方式:return,echo 1) return 语句 shell函数的返回值,可以和其他语言的返回值一样,通过return语句返回. 示例: #!/bin/sh fu ...

随机推荐

  1. web开发中如何使用引用字体

    1.在style中添加代码: @font-face { font-family: mFont; src: url('../font/crapaud_petit.ttf'); } 2.使用 <h1 ...

  2. 洛谷p3800:Power收集

    考虑朴素的dp: 对于每一行的每一个点 枚举能到的所有点(类似bzoj1648 比这题简单的dp) 期望时间复杂度O(NMT) 显然是超时做法 那么我们发现只有k个点对答案有贡献 考虑对每一个有权值的 ...

  3. Hibernate 检索方式之 HQL 检索方式

    HQL(Hibernate Query Language) 是面向对象的查询语言,它和 SQL 查询语言有些相似.在 Hibernate 提供的各种检索方式中,HQL 是使用最广的一种检索方式,它有如 ...

  4. jQuery实现节点克隆

    为了便于在DOM节点进行添加或者删除节点元素,使用克隆的方法比较方便,下面是js部分的主要代码 var container = $('.recordCon'); var cloneDom = cont ...

  5. It is difficult to the point of impossiblity for sb to image a time when ...

    对sb而言很难想象一段..的时光.

  6. 如何解决PeopleSoft Process Scheduler发布问题

    常见PeopleSoft进程调度程序发布问题 此发布问题中遇到的一些常见错误是: 将HTTP响应转换为UCS2时出错 XML文档对象创建失败. 无法处理来自Report Repository的HTTP ...

  7. mysql命名规范

    1.数据库表命名规范: (1)表名前应该加上前缀,表的前缀一个用系统或模块的英文名称缩写,前缀全部大写或首字母大写,表名中包含的单词首字母大写. (2)数据库表名应该有意义,并且易于理解,最好使用可以 ...

  8. 怎么修改kodexplorer网盘下的版权

    前言: 要说kodexplorer,可是个好东西,在线web管理服务器文件,着实是网站管理员的好助手.内置的adminer管理数据库,用起来也是很顺手. 这么好的工具,还是免费的.但就是页面底部有ko ...

  9. mysql uodate 报错 You can't specify target table '**' for update in FROM clause

    You can't specify target table 'sc' for update in FROM clause 背景:把“sc”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩: 上面 ...

  10. java中int和integer