TLCL学习笔记|第36章|数组
(认知有限,如有不妥,还请告知,欢迎讨论)
声明和赋值
eg.
declare -a a
days=(Sun Mon Tue Wed Thu Fri Sat)
dayss=([2]=Sun [1]=Mon [4]=Tue [3]=Wed [9]=Thu [5]=Fri [6]=Sat)
words=('apple' 'banana tree' 'i am not human')

访问元素
eg.
echo "${words[3]}"echo ${words[3]}
echo ${${words[3]}[1]}
echo ${${words[3]}[2]}
echo ${${words[3]}[3]}
echo ${${words[3]}[4]}
for i in ${words[*]}; do echo $i; done
for i in ${words[@]}; do echo $i; done
for i in "${words[@]}"; do echo $i; done
for i in "${words[*]}"; do echo $i; done

确定数组个数
eg.
(macOS的赋值后输出和书上写的有一点不一样,在第100位赋值后,数组的长度为100)
echo ${#words[3]}
echo ${#words[@]}
test1[100]=a
echo ${#test1[@]}
echo ${#test1[100]}
test1[100]=foo
echo ${#test1[@]}
echo ${#test1[1]}
echo ${#test1[100]}

取下标值
(macOS执行不了)
${!array[@]}
在数组末尾添加元素

数组排序
(结合管道和sort)
eg.


删除数组或特定数组元素

关联数组
感觉是类似于字典的数据类型,索引不一定是数字
使用前必须声明declare -A <array_name>,不能直接赋值

=END=
=reference=
[1]http://billie66.github.io/TLCL/book/chap36.html