微信手机网站案例,wordpress评论者头像,企业网站建设cms,织梦网站如何做seo文章目录 1.11 Shell函数定义及应用 1.11 Shell函数定义及应用
函数代表着一个或一组命令的集合#xff0c;表示一个功能模块#xff0c;常用于模块化编程#xff0c;通常能提升重复利用和简化复杂程序。以下是关于函数的一些重要说明#xff1a;
在shell中#xff0c;函… 文章目录 1.11 Shell函数定义及应用 1.11 Shell函数定义及应用
函数代表着一个或一组命令的集合表示一个功能模块常用于模块化编程通常能提升重复利用和简化复杂程序。以下是关于函数的一些重要说明
在shell中函数必须先定义再调用使用return value来获取函数的返回值函数在当前shell中执行可以使用脚本中的变量。
Shell中函数的定义语法如下
[ function ] funname [()]{action1;.......actionN[return 返回值变量;]
}注 如果函数名后没有在函数名和{ 之间必须要有空格以示区分。可以带function fun() 定义也可以直接fun() 定义,不带任何参数。参数返回可以显示加return 返回如果不加将以最后一条命令运行结果作为返回值。 return后的内容以字符串的形式写入但是执行时会自动转成数值型范围数值n(0-255)函数返回值只能通过$? 系统变量获得可以显示加return 返回值 Shell中函数的调用语法如下
语法
[function] func_name[()] [参数列表]案例1
下面的例子定义了一个函数并进行调用
#函数定义
firstfun(){echo this is my first function
}
echo -------开始-------#函数调用
firstfun
echo -------结束-------案例2:
带有return语句的函数定义
#函数定义
funwithreturn(){
echo 请输入两个数
echo 输入第一个数字为
read fnumecho 输入第二个数字为
read snumecho 输入两个数分别为$fnum and $snumreturn $(($fnum $snum))
}#带有return函数调用
funwithreturnecho 输入两个函数之和为$?注意: 函数返回值在调用该函数后通过 $? 来获得。 所有函数在使用前必须定义。这意味着必须将函数放在脚本开始部分直至shell解释器首次发现它时才可以使用。调用函数仅使用其函数名即可。 案例3:
在Shell中调用函数时可以向其传递参数。在函数体内部通过 $n 的形式来获取参数的值例如$1表示第一个参数$2表示第二个参数依次类推。带参数的函数示例
#函数定义
funwithparam(){
echo 第1个参数$1
echo 第2个参数$2echo 第10个参数$10
echo 第10个参数${10}echo 第11个参数${11}
echo 参数个数$#
echo 输出所有参数$*
}#调用带参数的函数参数为 1 2 3 4 5 6 7 8 9 34 73
funwithparam 1 2 3 4 5 6 7 8 9 34 73注意: $10 不能获取第十个参数获取第十个参数需要 10 。当 n 10 时需要使用 {10}。当n10时需要使用 10。当n10时需要使用{n}来获取参数。参数列表使用空格分开 另外Shell中还有一些特殊的字符及相应说明具体如下表所示
特殊参数处理说明备注$?表示上一个命令退出的状态码(0-255)$$表示当前进程编号$0表示当前脚本名称$n表示n位置的输入参数n代表数字n1$#表示参数的个数常用于循环 ∗ 和 *和 ∗和都表示参数列表 注 $* 和 $ 都表示传递给函数或脚本的所有参数$*与$区别如下 不被双引号 包含时$* 和 $ 都以$1 $2 … $n 的形式组成参数列表当它们被双引号 “包含时 “$*” 会将所有的参数作为一个整体以”$1 $2 … $n的形式组成一个整串“$” 会将各个参数分开以$1 “$2” … “$n” 的形式组成一个参数列表 案例4:
将函数写入脚本中然后运行
[rootqianfeng01 ~]# vim ./function1.sh
#!/bin/bash#定义函数
function start() {echo starting
}
function stop {echo stopping
}
restart() {echo restarting
}#打印第一个参数
echo $1#调用函数
restart运行如下
[rootqianfeng01 ~]# bash function1.sh abc
abc
starting