shell函数和数组
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