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. 个人总结ASP.NET必备面试题

    1.你能解释下MVC的完整流程吗? 所有的终端用户请求被发送到控制器.控制器依赖请求去选择加载哪个模型,并把模型附加到对应的视图.附加了模型数据的最终视图做为响应发送给终端用户. 2. 那你说一下你对 ...

  2. ThreadLocal与线程池使用的问题

    感谢博主的这篇分享,见 https://www.cnblogs.com/qifenghao/p/8977378.html 在今天的面试中,突然被考官问了这个问题,当时脱口而出的是 threadloca ...

  3. JS for循环 if判断、white循环。小练习

    1----输入正整数n,求1-n的和. var n=prompt("请输入一个正整数"); var sum=0; for (var i=1;i<=n;i++) { sum=s ...

  4. ECS云服务器配置数据库远程链接

    环境: windows server 2012 R2 Datacenter(数据中心版本) sql server 2008 R2 Express (环境的安装步骤此处不做教程) 开启远端链接重要步骤如 ...

  5. STS(Spring Tool Suite)下SSM(Spring+SpringMVC+Mybatis)框架搭建(一)

    最近在用SSM框架做一个网站,就顺便把自己要做的笔记需要了解的东西都写了下来,看看对大家学习SSM框架有没有帮助. 开发环境: 1.win10 64位 2.spring-tool-suite-3.9. ...

  6. 干掉safedog命令

    sc delete safedogguardcenter    shutdown -r -t 00 两条命令搞定

  7. win10上使用Xshell通过ssh连接Linux

    Windows 10上现在能安装Linux子系统了,正好最近.Net Core也逐渐发展起来了,我也就在自己电脑上搞了一下 在Windows 10上安装Ubuntu的过程就不用说了,都是流程性的东西 ...

  8. 性能测试学习 第七课 --loadrunner中JavaVuser脚本的编写

    1.环境准备:      LoadRunner11----->对应JDK1.6版本(32位) LoadRunner12----->对应JDK1.7版本(32位) (一).JDK下载安装完成 ...

  9. xgboost 多gpu支持 编译

    xgboost 多gpu支持 编译 Ubuntu 18.04.2Linux 4.15.0-46-genericgcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0 cuda ...

  10. 微信小程序如何发送短信验证码,无需搭建服务器

    自从微信小程序提供云开发支持,开发者无需搭建后台服务器,使用微信提供的核心API就可以实现应用功能,此时就需要小程序能够自己发送短信,比如短信验证码,榛子云短信(http://smsow.zhenzi ...