函数
shell 中,将实现特定功能的代码组合起来,即为函数体。
函数格式如下:
[ function ] funname [()]
{
action;
[return int;]
}
注意函数定义:
1.function 和(),在函数定义时,至少要保留一个。
2.函数返回,可以使用return 返回。如无返回 ,则以最后一个命令运行结果返回。
3.函数返回:return后跟数值n(0-255).
4.在函数外,获取函数返回值,需要在调用该函数后立刻通过 $? 来获得。
5.函数调用方法:直接使用函数名。
6.函数在使用前需要先定义。即函数体,一般都在shell脚本最前方。
- 函数参数
函数参数主要是通过位置变量获取。
位置变量:$0
表示函数名,$n
表示第n个参数。$#
表示参数个数。
其它参数:$*
将所有参数以一串字符形式展示,以空格为分隔符。$$
表示 脚本 运行时,脚本 的进程号。
数组
shell 只支持一维数组。数组,多个变量组合起来存放。
数组中变量获取,通过数组下标获取。
数组下标,以0开始,按1递增。
- 数组定义
array_name=(value1, ... valuen)
-
显示数组成员
所有成员:
echo ${a[@]}
或是:echo ${a[*]}
显示第0个成员:echo ${a[0]}
获取成员个数:echo ${#a[@]}
取成串成员:echo ${a[@]:start_pos:count_number}
需要注意的是,start_pos指定位置,可以从前向后指,也可指定后面固定位置。
如:start_pos为 0-3,即为 倒数第三个位置。
count_number为需要取的成员个数。 -
成员赋值
单个成员赋值:
a[post]=value; echo ${a[post]}
.
需要注意,如果赋值的下标不存在。默认数组个数会增加到新加下标位置。其它中间不存在的下标值默认为空。如a=(0,1,2); a[4]=4;echo ${a[3]};echo ${a[4]}
数组仅显示时,修改数组成员值。不修改存储值:如echo ${a[@]:/2/3} ; # 表示 显示数组a,并将下标为2的成员值显示为3.
- 删除数组
数组也是一个变量。删除该变量即可。如:
a=(1,2); unset a;
删除数组某个成员:unset a[post]
.