5.1 函数

格式:

func(){command}

示例1:

#!/bin/bashfunc(){echo"Thisisafunction."}func#bashtest.shThisisafunction.

Shell函数很简单,函数名后跟双括号,再跟双大括号。通过函数名直接调用,不加小括号。

示例2:函数返回值

#!/bin/bashfunc(){VAR=$((1+1))return$VARecho"Thisisafunction."}funcecho$?#bashtest.sh2

return在函数中是定义状态返回值,返回并终止函数,但返回的只能是数字,类似于exit 0。

示例3:函数传参

#!/bin/bashfunc(){echo"Hello$1"}funcworld#bashtest.shHelloworld

通过Shell位置参数给函数传参。


博客地址:http://lizhenliang.blog.51cto.com

QQ群:Shell/Python运维开发群 323779636


5.2 数组

数组是相同类型的元素按一定顺序排列的集合。

格式:

array=(元素1 元素2 元素3 ...)

用小括号初始化数组,元素之间用空格分隔。

定义方法1:初始化数组array=(abc)定义方法2:新建数组并添加元素array[下标]=元素定义方法3:将命令输出作为数组元素array=($(command))

数组操作:

获取所有元素#echo${array[*]}#*和@都是代表所有元素abc获取数组长度#echo${#array[*]}3获取第一个元素#echo${array[0]}a获取第二个元素#echo${array[1]}b获取第三个元素#echo${array[2]}c添加元素#array[3]=d#echo${array[*]}abcd添加多个元素#array+=(efg)#echo${array[*]}abcdefg删除a元素#unsetarray[a]#用名字删除会保留元素下标#echo${array[*]}bcdefg删除第一个元素#unsetarray[1]#echo${array[*]}cdefg

数组下标是以0开始。

示例1:讲seq生成的数字序列循环放到数组里面

#!/bin/bashforiin$(seq110);doarray[a]=$ileta++doneecho${array[*]}#bashtest.sh12345678910删除数组#unsetarray

示例2:遍历数组元素

#!/bin/bashIP=(192.168.1.1192.168.1.2192.168.1.3)for((i=0;i<${#IP[*]};i++));doecho${IP[$i]}done#bashtest.sh192.168.1.1192.168.1.2192.168.1.3