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. ubuntu频繁出现 安装包依赖关系

    折腾了一下午,还差点重装一次,最后记下解决办法,引以为戒! 第一步,备份官方的默认源 避免自己手贱操作失误,重装系统太费时间 cp /etc/apt/sources.list /etc/apt/sou ...

  2. 视频播放—— H5同层播放器接入规范

    H5同层播放器接入规范 x5-video-player-type 启用H5同层播放器 通过video属性“x5-video-player-type”声明启用同层H5播放器 x5-video-playe ...

  3. datatable中的copy和clone的用法区分

    dt.copy();//复制结构和数据 dt.clone();//仅复制结构,不复制数据

  4. 20181115 python-第一章学习小结part2

    Python基本知识 变量,用来存储中间计算结果,在后面可进行调用被使用的东西,叫做变量. 变量的命名规则: 字母,数字,下划线组合 不能用数字开头 常见的关键字不能用啊 常量,不会变的量,称作常量. ...

  5. 在虚拟机中安装Centos系统

    1.首先下载VMware 2.然后可以去http://mirrors.aliyun.com下载映像ISO 3.打开VM,点击创建新的虚拟机 4.选择典型模式 5.稍后安装操作系统 6.选择你所要安装的 ...

  6. python+SQLAlchemy+爬虫

    python+SQLAlchemy+爬虫 前面分享了SQLAlchemy的知识,这次我共享一下学习用python开发爬虫再把爬出来的数据放到用SQLAlchemy的数据库上面的知识,当然我这个是带测试 ...

  7. tensorflow-变量

    #计数器 import tensorflow as tf state = tf.Variable(0,name='counter') #设定变量print(state.name) #打印变量one = ...

  8. 3-1.Hadoop单机模式安装

    Hadoop单机模式安装 一.实验介绍 1.1 实验内容 hadoop三种安装模式介绍 hadoop单机模式安装 测试安装 1.2 实验知识点 下载解压/环境变量配置 Linux/shell 测试Wo ...

  9. 多媒体文件格式(二):FLV 格式

    在网络的直播与点播场景中,FLV也是一种常见的格式,FLV是Adobe发布的一种可以作为直播也可以作为点播的封装格式,其封装格式非常简单,均以FLVTAG的形式存在,并且每一个TAG都是独立存在的,接 ...

  10. #Java学习之路——第一部分总结

    今天主要是Java的入门以及idea的安装说实话,没有什么有技术含量的东西,发的也全是皮毛,但是在数组部分有很多细节需要注意,在JDK环境变量配置的地方不光光只有windows 的环境配置,还要掌握补 ...