牛下载:绿色软件官方软件免费下载基地!
所在位置:首页 > 新闻资讯 > Bash使用示例(1) – 数组

Bash使用示例(1) – 数组

发布时间:2020-04-28 21:25:14来源:阅读:

数组赋值


列表赋值

用新元素创建数组

array=('first element' 'second element' 'third element')

下标赋值

显式指定元素索引创建数组:

array=([3]='fourth element' [4]='fifth element')

按索引赋值

array[0]='first element'
array[1]='second element'

按名称赋值(关联数组)

declare -A array
array[first]='First element'
array[second]='Second element'

动态赋值

以其它命令的输出创建一个数组,例如使用seq创建一个从1到10的数组:

array=(`seq 1 10`)

从脚本参数创建数组

array=("$@")

循环内赋值

while read -r; do
    #array+=("$REPLY")     # Array append
    array[$i]="$REPLY"     # Assignment by index
    let i++                # Increment index 
done < <(seq 1 10)  # command substitution
echo ${array[@]}    # output: 1 2 3 4 5 6 7 8 9 10

访问数组元素


打印索引为0的元素

echo "${array[0]}"

打印最后一个元素(从Bash 4.3可用)

echo "${array[-1]}"

打印从索引1开始的元素

echo "${array[@]:1}"

打印从索引1开始的3个元素

echo "${array[@]:1:3}"

数组更改


按索引更改

初始化或者更新数组中的一个特定元素

array[10]="elevenths element"    # because it's starting with 0

追回

修改数组,追加元素到数组结尾

array+=('fourth element' 'fifth element')

添加元素到数组开头

array=("new element" "${array[@]}")

插入

给定索引值插入一个元素

arr=(a b c d)
# insert an element at index 2
i=2
arr=("${arr[@]:0:$i}" 'new' "${arr[@]:$i}")
echo "${arr[2]}" #output: new

删除

使用uset删除指定索引元素

arr=(a b c)
echo "${arr[@]}"   # outputs: a b c
echo "${!arr[@]}"  # outputs: 0 1 2
unset -v 'arr[1]'
echo "${arr[@]}"   # outputs: a c
echo "${!arr[@]}"  # outputs: 0 2

重排索引

当有一些元素从数组被删除时,可以使用下面方法重排索引,或者你不知道索引是否存在时隙时会有用。

array=("${array[@]}")

数组长度



${#array[@]}可以得到${array[@]}数组的长度

array=('first element' 'second element' 'third element')
echo "${#array[@]}" # gives out a length of 3

迭代数组元素


fileList=( file1.txt file2.txt file3.txt )
 
# Within the for loop, $file is the current file
for file in "${fileList[@]}"
do
  echo "$file"
done
反对
收藏

应用推荐

  • 热门资讯
  • 最新资讯
  • 应用排行榜
  • 游戏排行榜