SHELL训练营--day8__shell函数和数组

函数

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].

猜你喜欢

转载自blog.51cto.com/sincethen/2336217