linux 数组

linux 数组学习

变量:
  存储单个元素的内存空间

数组:
  存储多个元素的连续的内存空间,相当于多个变量的集合

数组名和索引
  索引:编号从0开始,属于数值索引
  注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash4.0版本之后开始支持(关联数据使用时必须提前声明类型)
  bash的数组支持稀疏格式(索引不连续)

声明数组:
  declare -a ARRAY_NAME
  declare -A ARRAY_NAME: 关联数组
  注意:普通数组不用事先声明就可以使用,但关联数组必须提前声明才能使用,且两者不可相互转换。

示例:

#!/bin/sh
# 这里注意声明数组,不然自定义下标的数组遍历不到结果
declare -A array_test
# 自定义数组下标
array_test=(["a"]="aa" ["b"]="bb" ["c"]=cc)

# [@] 和 [*] 一样,获取所有参数值
arrayList=${array_test[@]}
echo $arrayList

for i in $arrayList
do
    echo $i
	echo "+++++++++++++++"
done

# 自定义下标之后就可以通过自定下标找到对应的值
index="a"
arrayA=${array_test["$index"]}
echo "============="
echo $arrayA
echo "============="


# 获取数组长度
echo ${#array_test[@]}


# 默认下标(0,1,2)
array_B=(name age addr)

# 通过下标定义
array_B[4]="shanghai"

arryBList=${array_B[@]}
for i in $arryBList
do 
	echo "-------------"
	echo $i
	echo "-------------"
done
# 使用下标获取对应的值,也可以使用 -1 反向取值
echo "##############"
echo ${array_B[0]}
echo "##############"
echo ${array_B[-1]}
echo "##############"



# 通过命令定义数组内容
array_C=(`ls /root/shell`)
arrayCList=${array_C[*]}
for c in $arrayCList
do 
	echo $c
	echo "------------------"
done



# 修改数组内容
array_B[4]="beijing"
echo "array_B[4]: "${array_B[4]}


# 删除数据
unset array_B[1]
echo "array_B_ALL: "${array_B[*]}

unset array_test[a]
echo "array_test_all: "${array_test[*]}

示例结果:

aa bb cc
aa
+++++++++++++++
bb
+++++++++++++++
cc
+++++++++++++++
=============
aa
=============
3
-------------
name
-------------
-------------
age
-------------
-------------
addr
-------------
-------------
shanghai
-------------
##############
name
##############
shanghai
##############
aa.sh
------------------
demo.sh
------------------
getopt.sh
------------------
map.sh
------------------
array_B[4]: beijing
array_B_ALL: name addr beijing
array_test_all: bb cc

 
 
 
 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值