Bash Shell之数组简介

Bash Shell之数组简介

 

一、数组基本概念

  数组是内存中的存储空间,连续的多个存储单元;bash中只支持一维数组,支持稀疏格式 ,参数个数没有限制。

二、数组基本语法格式

  1、声明一个数组

         declare -a array  其实不用声明,按数组方式直接赋值给变量即可

  2、表示方式:数组名+索引

       索引的表示方式:数字索引:a[index]。例如:a[0], a[1]
         bash 4.0
以后支持关联数组.declare -A指明是关联数组例如:a[hello], a[hi]
       
在引用是必须使用{}。例如${a[0]}

  3、数组赋值:

         一次对多个元素赋值。例如:a=(red blue yellow green)

                 按索引进行赋值。例如:a=([0]=green [3]=red [2]=blue [6]=yellow)

                 命令替换赋值。例如:logs=(/var/log/*.log)

                 用户输入赋值。例如:read -a c,赋值后用echo ${c[0]}查看

  4、数组访问

       echo ${#a[i]}获取这个数组中第i个小标的元素值

                echo ${#a[*]}echo ${#a[@]} :获取这个数组中数组元素的总个数。

  5、从数组中挑选元素

         ${ARRAY[@]}: 取出所有元素。例如:echo ${a[@]}           
                ${ARRAY[@]:offset:number}
。例如:echo ${a[@]:1:1}
                                    offset:
偏移的元素个数
                                    number: 取出的元素的个数 
                ${ARRAY[@]:offset}
:取出偏移量后的所有元素 。例如:echo ${a[@]:1}

6、向数组复制和追加元素:

                把数组中的个数当做该数组的下标。
                                  declare -a mylogs
                                  tmp=${#mylogs[@]}
                                  mylogs[$tmp]="dasd"
               
删除数组用的元素:unset a[i]   删除所有原始unset a[*] unset a[@]

         数组复制:b[$index]=${a[$i]}

三、实例解析:

         1、写一个脚本,生成10个随机数,保存至数组中;而后显示数组下标为偶数的元素(或者将偶数元素赋值给一个新的数组并显示);

           1.png

         2.png

         2 生成10个随机数,升序排序

         3.png

         4.png

         注意:在Bash Shell数组互换时要注意其格式;赋值给tempa[$i]的方式不一样;

         3、打印九九乘法表

         5.png

         6.png

         

原创文章,作者:wxdz_2004(古雨秋),如若转载,请注明出处:http://www.178linux.com/4190

(0)
wxdz_2004(古雨秋)wxdz_2004(古雨秋)
上一篇 2015-05-11
下一篇 2015-05-11

相关推荐

  • 第四周 文件操作

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限 [root@localhost ~]# cp -a /etc/skel /home/tuser1 [root@localhost ~]# chmod -R go= /home/tuser1 [root@localhost ~]…

    Linux干货 2017-12-24
  • yum源设置

      yum是我们经常用到的一个程序,我们主要用它来安装或删除安装包,下面我来介绍一下怎样配置yum安装源?    配置yum安装源主要有两种方法:一种是用本地镜像做安装源,二是用提供镜像下载的网站做安装源。    一 配置本地安装源    本地安装源需要有系统镜像,操作步骤如下:…

    Linux干货 2016-01-16
  • 路由以及实验

    路由 路由(routing)是指分组从源到目的地时,决定端到路径的网络范围的进程。路由工作在OSI模型第三层——网络层的数据包转发设备。路由器通过转发数据包来实现网络互连。路由器可以支持多种协议,但绝大多数使用的是TCP/IP协议。路由器通常连接两个或者多个由IP子网或者点到点协议表示的逻辑端口,至少拥有1个物理端口。路由器根据收到数据包中的网络层地址以及路…

    Linux干货 2017-05-11
  • 由摩根定律引发的思考

    在Linux中,我们常常需要对一些条件进行判断,而对于多个条件的组合判断是基于摩根定律而进行的。所以理解摩根定律对于我们学习条件判断是很有必要的,下面我们就先介绍摩根定律进而引出其在一些具体场景上的应用。   一、摩根定律 在Linux中的条件判断中,摩根定律可以以下式来表示: !( A || B )=!A && !B !( A &…

    Linux干货 2016-08-16
  • 备份练习

    课外整理 cp 功能: 复制文件或目录说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息参数:     -a 或 –archiv…

    Linux干货 2016-08-08
  • varnish动静分离

    http://blog.51cto.com/sonlich/2060785

    2018-01-14