来自 技术 2019-03-16 的文章

shell脚本中的函数、shell脚本中的数组

开发十年,就只剩下这套架构体系了!>>>

shell中的函数函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可。函数的格式如下:

[ function ] funname [()]{ action;[return int;]}可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255)案例:函数要放在脚本中的前面

#!/bin/bashinput() { echo $1 $2 $# $0}input 1 a b在这个实例中$1表示第一个参数$2表示第二个参数$#表示参数的数量$0表示脚本的名字输出结果为:

[root@test01 jiaoben]# sh fun1.sh 1 a 3 fun1.sh案例二:

#!/bin/bashfun(){ echo "这个函数会对输入的两个数字进行相加运算..." echo "输入第一个数字: " read aNum echo "输入第二个数字: " read anotherNum echo "两个数字分别为 $aNum 和 $anotherNum !" c=$(($aNum+$anotherNum))}funecho "输入的两个数字之和为 $c !"输出结果为:

[root@test01 jiaoben]# sh -x fun3.sh + fun+ echo 这个函数会对输入的两个数字进行相加运算...这个函数会对输入的两个数字进行相加运算...+ echo '输入第一个数字: '输入第一个数字: + read aNum999+ echo '输入第二个数字: '输入第二个数字: + read anotherNum999+ echo '两个数字分别为 999 和 999 !'两个数字分别为 999 和 999 !+ c=1998+ echo '输入的两个数字之和为 1998 !'输入的两个数字之和为 1998 !

案例三:

在shell中,调用函数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数...带参数的函数示例:

#!/bin/bashfun(){ echo "第一个参数为 $1 !" echo "第二个参数为 $2 !" echo "第十个参数为 $10 !" ##这里是我们正常使用数字表示第十个参数。 echo "第十个参数为 ${10} !" echo "第十一个参数为 ${11} !" echo "参数总数有 $# 个!" echo "作为一个字符串输出所有参数 $* !"}fun 1 2 3 4 5 6 7 8 9 34 73输出结果为:

[root@test01 jiaoben]# sh fun4.sh 第一个参数为 1 !第二个参数为 2 !第十个参数为 10 ! ## 发现这种写法是不能够获得第十个参数的值的。第十个参数为 34 !第十一个参数为 73 !参数总数有 11 个!作为一个字符串输出所有参数 1 2 3 4 5 6 7 8 9 34 73 !

注意,$10 不能获取第十个参数,获取第十个参数需要${10}。当n>=10时,需要使用${n}来获取参数。| 参数 | 说明 || ------------ | ------------ || $# | 传递到脚本的参数个数 || $* | 以一个单字符串显示所有向脚本传递的参数 || $$ | 脚本运行的当前进程ID号 || $! | 后台运行的最后一个进程的ID号 || $@ | 与$*相同,但是使用时加引号,并在引号中返回每个参数。 || $- | 显示Shell使用的当前选项,与set命令功能相同。 ||$? |显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。|

shell中的数组

标签:   Bash      开源im软件      指导建议   
上一篇:OSChina 周六乱弹 —— 想通过么?收费!!!
下一篇:没有了