美文网首页
bash数组小结

bash数组小结

作者: 小二子SAMA | 来源:发表于2018-05-11 21:29 被阅读0次

Bash Shell只支持一维数组。

  1. 数组声明方式:
    bash中数组可以不用声明,直接按照数组赋值方式给数组赋值,bash会将该变量按照数组处理
1)  declare -a array_name
2)  declare -p array_name # 等价于declare -a array_name='()'
  1. 数组赋值方式
    bash数组下标由0开始。
1)array_name=(var1 var2 var3  ... varN)
2)array_name=([0]=var1 [1]=var2 [2]=var3 ...[M]=varN)
3) array_name[0]=var1
   array_name[1]=var2
   array_name[2]=var3
         ...
   array_name[M]=varN
4)array_name+=(var1)
   array_name+=(var2)
   array_name+=(var3)
          ...
   array_name+=(varN)
  1. 获取数组长度方式
1)${#array_name[@]}
2)${#array_name[*]}

bash中@和*都表示“拓展参数,从1开始”

  1. 获取参数特定项方式
#index为特定位置下标
${array_name[index]}
  1. 获取数组全部值
1)${array_name[@]}
2)${array_name[*]}
  1. 实现数组遍历方式
fileName=(`ls`)
for file in ${fileName[@]}; do 
    echo $file; 
done
  1. 判断某个值是否位于数组中
if echo "${array_name[@]}" | grep -w "10" &>/dev/null; then 
echo "Found"; 
fi
  1. 将字符串拆分为数组
    1)以空格作为分隔符
str="aaa bbb ccc"
array_name=($str)
  1. 以特殊字符作为分隔符
#将IFS声明为需要使用的分隔符,可以为多个
IFS="[]"
str="[aaa] [bbb] [ccc]"
array_name=($str)

参考:

  1. BASH 数组用法小结
  2. 在Bash中将字符串拆分成数组
  3. 判断字符串是否在shell数组中

相关文章

  • bash数组小结

    Bash Shell只支持一维数组。 数组声明方式:bash中数组可以不用声明,直接按照数组赋值方式给数组赋值,b...

  • bash小结

    Shell脚本编程 shell 标识第一行 #!/bin/sh 变量 字符串 单引号字符串的限制: 单引号里的任何...

  • bash小结

    linux支持的shell: *if判断[ a ] 条件a两侧应有空格 注意: 一,变量赋值时,“=”左右两边都不...

  • bash 数组

    创建 注意,= 两边不能有空格,不同值中间使用空格分割,而不是逗号 ','。 读取 数组下标从 0 开始,用 ec...

  • shell语法(不断更新中)

    #!/bin/bash #创建一个数组 array=(987876765654543432321) #读取数组中所...

  • mac 升级 bash

    由于bash3.2不支持关联数组,需要升级到bash4 方法: brew install bash sudo mv...

  • [LN_12] Shell编程-Shell数组的定义&使

    目录结构 一、Shell数组的定义&使用 Bash Shell只支持一维数组,不支持多维数组。数组中可存放多个值,...

  • shell数组

    Shell 数组 数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义...

  • Shell---数组

    bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组...

  • 数组小结

    一.数组概述 概念:将n个同类型的变量以整体的形式表示出来,能够以简单的方式访问整体中的每一个元素。 分类:一维数...

网友评论

      本文标题:bash数组小结

      本文链接:https://www.haomeiwen.com/subject/exeqdftx.html