linux 中shell数组的应用


001、生成数组, 生成数组a

root@ubuntu2204:/home/test# a[0]=800
root@ubuntu2204:/home/test# a[1]=500
root@ubuntu2204:/home/test# a[2]="kkk"
root@ubuntu2204:/home/test# a[3]="ggg"
root@ubuntu2204:/home/test# a[4]="xxx"
root@ubuntu2204:/home/test# a[5]=777
root@ubuntu2204:/home/test# a[6]=666

002、输出数组单个元素

root@ubuntu2204:/home/test# echo ${a[0]}
800
root@ubuntu2204:/home/test# echo ${a[4]}
xxx

003、批量输出数组元素

root@ubuntu2204:/home/test# for i in $(seq 0 5); do echo ${a[i]}; done
800
500
kkk
ggg
xxx
777
root@ubuntu2204:/home/test# for i in $(seq 0 6); do echo ${a[i]}; done
800
500
kkk
ggg
xxx
777
666

004、使用一行生成数组

root@ubuntu2204:/home/test# declare -a b=(111 "xxx" 555 800)
root@ubuntu2204:/home/test# echo ${b[1]}
xxx
root@ubuntu2204:/home/test# echo ${b[3]}
800

005、在1行中打印整个数组

root@ubuntu2204:/home/test# declare -a a=(100 200 "xxx" "yyy")
root@ubuntu2204:/home/test# echo ${a[@]}
100 200 xxx yyy

006、获取数组的长度

root@ubuntu2204:/home/test# declare -a a=(100 200 300 400)
root@ubuntu2204:/home/test# echo ${#a[@]}
4
root@ubuntu2204:/home/test# declare -a b=(100 200 300 400 "xxx" "yyy")
root@ubuntu2204:/home/test# echo ${#b[@]}
6

007、数组中单个元素的长度

root@ubuntu2204:/home/test# declare -a a=(100 33333 2 44)
root@ubuntu2204:/home/test# echo ${#a[0]}
3
root@ubuntu2204:/home/test# echo ${#a[2]}
1
root@ubuntu2204:/home/test# echo ${#a[1]}
5
root@ubuntu2204:/home/test# echo ${#a[3]}
2

008、数组切片

root@ubuntu2204:/home/test# a=(100 "xxx" 200 888 999 "yyy" "zzz")
root@ubuntu2204:/home/test# echo ${a[@]:2}   ## 索引为2一直到最后的元素
200 888 999 yyy zzz
root@ubuntu2204:/home/test# echo ${a[@]:2:3}   ## 索引为2后增加3个元素
200 888 999

参考:https://www.linuxprobe.com/shell-array-example.html