shell函数和数组
一、函数
1、函数使用方法
-
-
-
查看系统限制所有函数:declare -F
-
看函数定义详细内容:declare -f 函数名
- 删除函数:unset 函数名
2、注意事项
-
直接写 函数中调用函数 直接写函数名
-
同名函数 后一个生效
-
调用函数一定要先定义
-
只要先定义了调用的 其他函数定义顺序无关
3、定义函数基本格式
①function 函数名 () {
函数内容
}
②function 函数名 {
函数内容
}
③函数名 () {
函数内容
}
4、函数变量
①函数中的变量默认为全局生效,若想要限制函数中的变量只在本函数中生效则在定义变量时使用local 变量名=变量值的格式。
5、退出函数
①exit退出函数,脚本中使用exit退出函数时直接退出整个脚本,脚本后续内容不再执行。
②return退出函数,脚本使用return退出函数时只退出函数,不影响脚本后续内容执行。
二、shell数组
1、数组分类
①关联数组:必须声明才可以使用,命令:delare -A 数组名
②普通数组:利用数字下标节约变量,可以不声明也可以声明,命令:delare -a 数组名
delare -a命令也可查看有哪些普通数组
2、定义数组方法
①普通数组
数组名=(vlaue0 vlaue1 vlaue2 ...)
[root@pc1 ~]#a=(10 20 30) #定义数组a,值为10 20 30
[root@pc1 ~]#echo ${a[0]} #输出数组a下标为0的元素
10
[root@pc1 ~]#echo ${a[@]} #输出数组a中所有的元素
10 20 30
[root@pc1 ~]#echo ${a[*]} #输出数组a中所有的元素
10 20 30
[root@pc1 ~]#echo ${#a[@]} #输出数组a中元素的个数
3
[root@pc1 ~]#echo ${!a[@]} #输出数组a中元素的下标
0 1 2
[root@pc1 ~]#a[0]=100 #重新定义数组a下标为0的元素为100
[root@pc1 ~]#echo ${a[0]} #输出数组a中下标为0的元素
100
②关联数组定义
delare -A 数组名 #声明数组
数组名[下标]=元素 #定义关联数组
[root@pc1 ~]#declare -A f #声明关联数组f
[root@pc1 ~]#f[name]=pc1 #定义关联数组f下标name的元素为pc1
[root@pc1 ~]#f[ip]=10.0.0.0 #定义关联数组f下标ip的元素为10.0.0.0
[root@pc1 ~]#echo ${f[@]} #输出关联数组f的所有元素值
pc1 10.0.0.0
[root@pc1 ~]#echo ${!f[@]} #输出关联数组f中元素的所有下标
name ip