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 12:21
下一篇 2015-05-11 14:07

相关推荐

  • 进程工具总结

    一、top命令         top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处…

    Linux干货 2016-09-12
  • sed行编辑器

    Linux文本处理三剑客之一:sed(Stream Editor)流编辑器 sed:     将指定的文本文件内容逐行读取至sed的临时内存空间当中,称为"模式空间",而后逐行查看是否被sed的地址定界所匹配到,如果匹配,则执行相应的编辑操作,否则,默认将模式空间中的内容打印至标准输出  …

    Linux干货 2016-08-15
  • lnmp部署实验

    Lnmp部署 实验环境: 1、Centos 7主机一台,客户机一台。 2、在centos 7主机上部署:    Nginx  php-fpm  php-mysql  mariadb-server 实验步骤: 1、启动nginx服务,确保80端口打开,启动mariadb-server,确保3306端口…

    Linux干货 2016-10-30
  • 分布式系统的事务处理

    当我们在生产线上用一台服务器来提供数据服务的时候,我会遇到如下的两个问题: 1)一台服务器的性能不足以提供足够的能力服务于所有的网络请求。 2)我们总是害怕我们的这台服务器停机,造成服务不可用或是数据丢失。 于是我们不得不对我们的服务器进行扩展,加入更多的机器来分担性能上的问题,以及来解决单点故障问题。 通常,我们会通过两种手段来扩展我们的数据服务: 1)数…

    Linux干货 2016-08-15
  • 第二周作业

    第二周

    Linux干货 2017-12-11
  • Linux第一周学习博客作业

    对第一周学习的内容进行总结

    Linux干货 2017-12-02