shell脚本函数及数组

函数介绍:

函数function是由若干条shell命令组成的语句块,实现代码重用和模块话编程。

它与shell程序形式上是相似的,不同的是它不是一个单独的进程,不能独立运行,而是shell程序的一部分。

函数shell程序比较相似,区别在于:

shell程序在shell中运行

而shell函数在当前shell中运行。因此在当前shell中,函数可以对shell中变量进行修改

 

函数语法

1.function  函数名 {

     命令

   }

2.函数名(){

命令

}

例子:

 

 运行结果

 

 

函数的返回值

return,在shell中也可以用$?表示,函数的返回值又可以称为函数的退出状态,实际上可以理解为一种通信方式。

Shell脚本中函数可以使用返回值的方式把调用的结果信息反馈给调用者。便于调用者可以根据反馈的结果做相应处理。

例子:

 

 

函数的传参

 

 运行结果

 

用户输入的参数分别对应脚本结尾的$2,$1,而$2,$1又对应函数定义的变量1和变量2。

 

函数的递归

例子:求任意数的阶乘

 

求3的阶乘,运行结果

 

 

 

数组

数组:存储多个元素的连续的内存空间,相当于多个变量的集合

数组名和索引:

索引:编号从0开始,属于数值索引

定义数组的方法

1.数组名=(元素)元素之间要以空格隔开

2.数组名=([0]=1 [1]=2......)相当于为下标赋值

3.数组名[0]=1

   数组名[1]=2

   数组名[2]=3

   ......

数组名相同,和第二种方法类似

 

如何获取数组的数据列表

echo  ${数组名[*]}

echo  ${数组名[@]}

 

 

 如何获取数组长度

echo  ${#数组名[*]}

echo  ${#数组名[@]}

 

 

获取数组下标对应的值

echo ${数组名[下标值]}

 

 

数组的遍历

 

 

 

 

数组的切片

 

 

数组替换

1.临时替换

 

 2.重新赋值

 

 

删除数组

unset 数组名

 

 删除数组元素

unset 数组名[下标]

 

 

数组元素追加

1.下标赋值

2.将数组长度作为下标进行追加

 

 相当于重新赋值

3.使用+=进行追加