Bash记忆002——关于数组

几个关于Bash中数组的创建和引用的例子,用于参考。

#!/bin/bash
echo ========== array 1 ==========
a1=("a" "b" "c")
echo ${#a1[@]}
echo ${a1[@]}
echo ${!a1[@]}
for ((i=0; i < ${#a1[@]}; i++)); do
  echo ${a1[$i]}
done

echo ========== array 2 ==========
declare -a a2
for ((i=1; i<10; i++)); do
  a2[$i]=$i
done
echo ${!a2[@]}
echo ${a2[@]}
for ((i=0; i < ${#a2[@]}; i++)); do
  echo ${a2[$i]}
done
for i in ${!a2[@]}; do
  echo ${a2[$i]}
done
unset a2[4]
echo ${!a2[@]}
echo ${a2[@]}

echo ========== array 3 ==========
for ((i=1; i<10; i++)); do
  a3[$i]=$i
done
echo ${a3[@]}
echo ${a3[@]:3:6}
echo ${a3[@]: -4}

补充说明

一、创建数组

a=(1 2 3 4 5)

c=('a' 'b' 'c')

a=([0]=1 [1]=2 [2]=3 [3]=4)

l="1 2 3 4 5"
a=($l) # 不可以直接令 a=("1 2 3 4 5")

a[0]='bee'
a[1]='cat'
a[2]='dog'
a[4]='fox'

# 关联数组,字典
unset a # 删除数组a
declare -A a # 声明a为关联数组
a=(['k1']=10 ['k2']=20 ['k3']=30)
echo ${a['k2']} # 返回20

二、操作数组

a=(1 2 3 4 5 6 7 8 9)

# 获取数组长度
l=${#a[@]}
l=${#a[*]} # 使用“*”与“@”一样,后续如无特别说明,仅用“@”示例

# 获取数组所有索引值
ii=${!a[@]}

# 索引、遍历
echo ${a[@]}  # 全部元素
echo ${a[0]}  # 第一个元素
echo ${a[-1]} # 倒数第一个元素

# 切片 ${数组名[@]:起始索引:提取长度}
echo ${a[@]:2:3} # 从索引2开始提取3个元素,返回 3,4,5
echo ${a[@]: -4:2} # 从索引-4开始提取2个元素,注意负号前的空格,返回 6,7

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值