shell 函数

function

函数
1.什么是函数
函数也是具有和别名类似的功能:
简单地说,函数的作用就是把程序里多次调用相同的代码部分定义成一份,然后为这一份代码起个名字,其他所有的重复调用这部分代码就都只调用这个名字就可以了,当需要修改这部分重复代码时,只需要改变函数体内的一份代码即可实现所有调用修改。
使用函数的优势:
1、把相同的程序段定义成函数,可以减少整个程序的代码量。
2、增加程序的可读、易读性。
3、可以实现程序功能模块化,不同的程序使用函数模块化。
强调:对于shell来说,linux系统的2000个命令都可以说是shell函数。

2. shell函数语法
语法格式:
简单语法格式:
函数名(){
指令…
return n
}
规范语法格式:
function 函数名(){
指令 …
return n
}

3. shell函数的执行
调用函数:
1)直接执行函数名即可(不带括号)
函数名
注意:
a)执行函数时,函数后的小括号不要带
b)函数定义及函数体必须在要执行的函数名的前面定义
2)带参数的函数执行方法
函数名 参数 1 参数 2
【函数后接的参数说明】
* shell的位置参数($1、$2、$3、$4、$5、$#、$*、$?以及[email protected])都可以。
* 此时父脚本的参数临时被函数参数所掩盖或隐藏
* $0比较特殊,它仍然是父脚本的名称。
* 当函数完成时,原来的命令行脚本的参数即恢复。
* 在shell函数里面,return命令功能与shell里的exit类似,作用是跳出函数
* 在shell函数体里使用exit会退出整个shell脚本,而不是shell函数。
* return语句会返回一个退出值(返回值)给调度函数的程序
* 函数参数变量是在函数体里面定义。

4、函数范例:
范例1:
脚本如下:

$ cat hs01.sh
#简单函数语法
jonny() {
        echo "I am jonny!"
}

#规范函数语法

function jaye(){
        echo "I am jaye!"
}
jonny    #调用函数jonny
jaye     #调用函数jaye
 
$ sh hs01.sh
I am jonny!
I am jaye!

范例2 调用函数:
1、被调用的函数脚本

$ vim hs01.sh
jonny() {
        echo "I am jonny!"
}
function jaye(){
        echo "I am jaye!"
}

2、调用的函数脚本

$ cat hs02.sh
HS="/server/script/hanshu/hs01.sh"
. $HS
jonny
jaye

3、执行脚本

$ sh hs02.sh
I am jonny!
I am jaye!

范例3 函数传参:

$ cat fun01.sh
who(){
        echo "I am $1."     #定义函数的传参
}
who jonny                   #who 是函数 jonny是参数
$ sh fun01.sh
I am jonny.                 #意思是将jonny 传给$1,那么打印出来的就是I am jonny.

范例4:函数传参及脚本传参

$ cat hs04.sh
who(){
        echo "I am $1."     #定义函数的传参
}
who $1                      #定义脚本的传参
$ sh hs04.sh jonny          #运行脚本接一个jonny参数
I am jonny.                 #打印出jonny,因为Jonny是脚本的传参,那么who jonny就是函数的传参.

范例5:函数传参转成脚本命令行传参,对任意指定URL判断是否异常。
案例一:

$ cat hs05.sh
#!/bin/sh
function check_url(){
curl $1 &>/dev/null
if [ $? -eq 0 ];then
   echo "$1 is ok"
else
   echo "$1 is no"
fi
}
check_url $1

案例二:

$ cat hs05.sh               
#!/bin/sh
function check_url(){
#curl $1 &>/dev/null
wget -T 10 --spider -t 2 $1 &>/dev/null
if [ $? -eq 0 ];then
   echo "$1 is ok"
else
   echo "$1 is no"
fi
}
check_url $1
$ sh hs05.sh www.baidu.com
www.baidu.com is ok
$ sh hs05.sh www.baidaaaau.com
www.baidaaaau.com is no

分步解答:
1、脚本脚本传参检查web url是否正常。
2、检查的功能写成函数
3、函数传参转成脚本命令行传参,对任意指定URL判断是否异常。

时间: 2024-10-06 00:31:03

shell 函数的相关文章

linux Shell函数

Shell函数类似于Shell脚本,里面存放了一系列的指令,不过Shell的函数存在于内存,而不是硬盘文件,所以速度很快,另外,Shell还能对函数进行预处理,所以函数的启动比脚本更快. 1.函数定义 1 2 3 4 function 函数名() {     语句     [return] } 关键字function表示定义一个函数,可以省略,其后是函数名,有时函数名后可以跟一个括号,符号"{"表示函数执行命令的入口,该符号也可以在函数名那一行,"}"表示函数体的结

shell 函数定义及应用

1.函数介绍 函数function是由若干条shell命令组成的语句块,实现代码重用和模块化编程. 它与shell程序形式上是相似的,不同的是它不是一个单独的进程,不能独立运行,而是shell程序的一部分. 使用时, 在shell 中  source  /path fo function_file,函数将保留至用户退出,也可以使用 unset function_name ,撤销函数 函数和shell程序比较相似,区别在于: Shell程序在子Shell中运行 而Shell函数在当前Shell中运

shell 函数 返回数组

shell 函数 返回数组,布布扣,bubuko.com

shell--9、Shell 函数

linux shell 可以用户定义函数,然后在shell脚本中可以随便调用. shell中函数的定义格式如下: [ function ] funname [()] {     action;     [return int;] } 说明: 1.可以带function fun() 定义,也可以直接fun() 定义,不带任何参数. 2.参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值. return后跟数值n(0-255 下面的例子定义了一个函数并进行调用:

shell 函数法实现监控web 网站url

使用shell 函数实现监控web 网站url [[email protected] scripts]# cat checkweb.sh #!/bin/bash function usage() {     echo $"usage:$0 url"     exit 1 } function check_url() {     wget --spider -q -o /dev/null --tries=1 -T 5 $1     if [ $? -eq 0 ]       then 

Shell 函数、数组与正则表达式

防伪码:白日依山尽,黄河入海流. 5.1  函数 格式: func() { command } 示例 1: #!/bin/bash func() { echo "This is a function." } func # bash test.sh This is a function. Shell 函数很简单,函数名后跟双括号,再跟双大括号.通过函数名直接调用,不加小括号. 示例 2:函数返回值 #!/bin/bash func() { VAR=$((1+1)) return $VAR

linux学习之shell脚本 ------- shell函数

[本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020] 今天来看一下Shell的函数. Shell函数 函数定义 shell允许将一组命令集或语句形成一个可用块,这些块称为Shell函数. 函数定义格式: 函数名(){ 命令1 -- } 或 function 函数名(){ -- } 函数可以放在同一个文件中作为一段代码,也可以放在只包含函数的单独文件中. 如下面的脚本就是一个只包含函数的单独文件. #!/bin/bash #fu

Linux Shell函数返回值

转:http://blog.csdn.net/ithomer/article/details/7954577 Shell函数返回值,一般有3种方式:return,argv,echo 1) return 语句shell函数的返回值,可以和其他语言的返回值一样,通过return语句返回.示例: [javascript] view plain copy print? #!/bin/bash - function mytest() { echo "arg1 = $1" if [ $1 = &q

shell函数

为什么要用shell函数? 简单地说函数的作用就是把程序里多次调用的相同的代码 ,定义成一份,然后起个名字,所有的调用都是只用这个名字就可以了.修改代码时,只需要改变函数体内的代码即可. 优势: 把相同的程序段定义成函数,可以节省程序代码量 增加程序的可读,易读性 实现程序的功能模块化 shell函数语法 简单的语法: 函数名(){ 指令... return n } 规范的语法: function   函数名(){ 指令... return n } shell函数执行 调用函数: 1)直接执行函