zoukankan      html  css  js  c++  java
  • Linux Shell 数组

    shell 数组一般都是一维数组。

    1. 数组的声明

    • declare -a arr
    • 该命令将声明一个数组arr,实际上不声明也可以直接定义数组。

    2. 数组的初始化

    • arr=(1 2 3):该命令定义了一个数组,可以不指明长度。元素之间用空格隔开。
    • arr=([index1]=val1 [index2]=val2 ... [indexn]=valn):利用数组下表定义数组。
    • read -a array:从命令行中读入数组。

    3. 数组信息的获取

    • ${arr[index]}:读取数组中下标为index的元素。
    • ${arr[@/*]}:读取arr的所有元素。@*都是所有的意思。
    • ${#arr[@/*]}arr中的元素个数,#代表数目。

    4. 数组元素的更新

    • arr[index]=x:将下标为index的数组元素更新为x,如果index对应元素不存在,则在相应index位置添加元素x
    • arr=(x y .. z):将数组重新定义,覆盖原数组。

    5. 数组的删除

    • unset arr:删除整个arr数组。
    • unset arr[index]:删除arr中下标为index的数组元素。

    6. 数组切片

    • ${arr[@]:start:end}:将数组从下标为startend切片,返回值为字符串类型,元素之间以空格符分隔。
    • arr_new="(${arr[@]:start:end})":将数组切片后赋给新的数组变量,切片以后对返回字符串左右加上括号即构成了新的数组。

    7. 数组元素替换

    • ${arr[@]/原元素x/替换元素y}:将数组中所有原元素x替换为替换元素y,返回一个新的替换后的数组,并不改变原值。
    • arr=${arr[@]/x/y}:替换元素后覆盖原数组,改变原数组。
    • arr_new=${arr[@]/x/y}:将修改后的数组赋给一个新数组,原数组内容不变。

    8. 数组的遍历操作

    • for i in "${array[@]}"
      do
      #access each element as $i. . .
      done
    • for循环遍历数组。

    9. 模拟二维数组

    • matrix[i][j]=array[n*i+j]:通过一维数组模拟二维数组,按行顺序存储。

    参考博客:

    1. http://www.tecmint.com/working-with-arrays-in-linux-shell-scripting/
    2. http://www.cnblogs.com/chengmo/archive/2010/09/30/1839632.html
  • 相关阅读:
    AD 文档信息设置和制作模板
    用AT命令调试调制解调器
    语音AT命令参考
    传真AT指令部分(参考)
    传真调制解调器
    knockout+weui+zepto
    20171028随手记
    20171027随记
    一些简单又坑人的无聊使用
    ReadWrite,日志,输入文本
  • 原文地址:https://www.cnblogs.com/eva_sj/p/6172249.html
Copyright © 2011-2022 走看看