shell函数
Shell函数的概念
函数的数学表达式sin、cos、tan 其实只是定义好的计算公式,函数就是一个功能模块,在函数中写好需要执行的命令即可
函数的作用
在编写脚本时,有些脚本可以反复使用,可以调用函数来解决
语句块定义成函数约等于别名
函数使用方法:
函数使用步骤
定义函数基本格式
格式1:
function 函数名 () {
函数内容
}
格式2:
function 函数名 {
函数内容
}
格式3:
函数名 () {
函数内容
}
注意事项
查看函数
[root@localhost ~]# declare -F
#函数列表
declare -f __HOSTNAME
declare -f __SIZE
declare -f __SLAVEURL
[root@localhost ~]# declare -f
#函数具体的定义
删除函数
unset func_name
函数的返回值
return表示退出函数并返回一个退出值,脚本中可以用$?变量表示该值
使用原则:
函数的传参数
函数的作用范围
函数变量的作用范围:
实例一:
实例二:
函数的递归
递归就是一个函数在它的函数体内调用它自身。执行递归函数将反复调用其自身,每调用一次就进入新的一层。所以递归要有两个基本要素,结束条件与递推关系。
阶乘:
shell数组
数组分类
delare -a命令也可查看有哪些普通数组
定义数组方法
数组名=(vlaue0 vlaue1 vlaue2 ...)
[root@localhost ~]#a=(10 20 30) #定义数组a,值为10 20 30
[root@localhost ~]#echo ${a[0]} #输出数组a下标为0的元素
10
[root@localhost ~]#echo ${a[@]} #输出数组a中所有的元素
10 20 30
[root@localhost ~]#echo ${a[*]} #输出数组a中所有的元素
10 20 30
[root@localhost ~]#echo ${#a[@]} #输出数组a中元素的个数
3
[root@localhost ~]#echo ${!a[@]} #输出数组a中元素的下标
0 1 2
[root@localhost ~]#a[0]=100 #重新定义数组a下标为0的元素为100
[root@localhost ~]#echo ${a[0]} #输出数组a中下标为0的元素
100
delare -A 数组名 #声明数组
数组名[下标]=元素 #定义关联数组
[root@localhost ~]#declare -A f #声明关联数组f
[root@zrsb ~]#f[name]=pc1 #定义关联数组f下标name的元素为pc1
[root@localhost ~]#f[ip]=10.0.0.0 #定义关联数组f下标ip的元素为10.0.0.0
[root@localhost ~]#echo ${f[@]} #输出关联数组f的所有元素值
zrsb 10.0.0.0
[root@localhost ~]#echo ${!f[@]} #输出关联数组f中元素的所有下标
name ip