您的位置:首页 > 运维架构 > Shell

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

2018-12-28 00:19 645 查看

函数

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell