【学习分享】shell基础-数组
1.3 数组
1.3.1 数组基础概念
shell的数组命名规则和变一致,格式和主流的编程语言也是一致的,唯一的区别是,数组当中不同的值是用空格隔开的,而非逗号。
#!/bin/bash
array=(1 2 3 4 5 6)
echo $(array[0]) #shell的数组下标也是从0开始而非1,打印第一个数据“1”
1.3.2 关联数组
基础概念:可以使用任意的字符串、或者证书作为下标来访问数组元素。通俗一点的理解就是,普通的数组访问数据内部的元素只能使用下标,且下标只能是阿拉伯数字,关联数组就突破了这个限制,这个“下标”不再是数字,可以是字符串形式。
语法格式:declare -A array_name ,其中-A生命一个关联数组,且键唯一。
#!/bin/bash
declare -A array_test=(["a"]="test1" ["b"]="test2" ["c"]="test3")
echo "打印array_test的值"
echo ${array_test["A"]} #输出test1
echo ${array_test["B"]} #输出test2
echo ${array_test["C"]} #输出test3
echo ${array_test[*]} #输出test1、test2、test3
echo "打印结束"
#也可以先定义,再赋值
declare -A array_test1
array_test1["A"]="kkk"
array_test1["B"]="lll"
array_test1["C"]="JJJ"
echo "开始"
echo ${array_test1["A"]}
echo ${array_test1["B"]}
echo ${array_test1["C"]}
echo "结束"
1.3.3 数组键获取办法
再打印所有值的前面增加感叹号,见以下代码的打印行
#!/bin/bash
declare -A array_test=(["a"]="test1" ["b"]="test2" ["c"]="test3")
echo "打印array_test的值"
echo ${array_test["A"]} #输出test1
echo ${array_test["B"]} #输出test2
echo ${array_test["C"]} #输出test3
echo ${array_test[*]} #输出test1、test2、test3
echo "打印结束"
#也可以先定义,再赋值
declare -A array_test1
array_test1["A"]="kkk"
array_test1["B"]="lll"
array_test1["C"]="JJJ"
echo "开始"
echo ${array_test1["A"]}
echo ${array_test1["B"]}
echo ${array_test1["C"]}
echo "结束"
1.3.4 数组长度获取
再打印所有值的前面增加#,见以下代码的打印行
#!/bin/bash
declare -A array_test=(["a"]="test1" ["b"]="test2" ["c"]="test3")
echo "打印array_test的值"
echo ${#array_test[*]}
echo "打印结束"