定义
用括号 ( ) 来表示数组,数组元素之间用 空格 来分隔。
- 赋值号 =两边不能有空格
- 常用的 Bash Shell 只支持一维数组,不支持多维数组
- Shell 的数组是弱类型的,不要求所有数组元素的类型必须相同
- Shell 数组元素的下标也是从 0开始计数。
示例
#!/bin/bash
tarray=(1 3 5 B C "D")
for ele in ${tarray[@]}
do
echo $ele
done
echo ${tarray[*]}
echo 数组长度为: ${#tarray[*]}
for ((i=0; i<${#tarray[@]}; i++)) do
echo index${i} is ${tarray[i]}
done使用
- 获取数组值:n=${nums[3]}
- 使用 *或@获取所有元素:echo ${nums[*]}或echo ${nums[@]}
- 使用 #获取数组长度:echo ${#array_name[@]}或echo ${#array_name[*]},strr="123456" && echo ${#strr}
- 使用 unset删除数组元素,数组长度会变小:unset nums[1]
- 数组合并:array_new=(${array1[@]} ${array2[@]})或array_new=(${array1[*]} ${array2[*]})
#!/bin/bash
arr=(23 56 99 "http://www.hello.com/")
# 删除了 56 这个元素
unset arr[1]
echo ${arr[@]}
# 删除了整个 arr数组,数组长度为0
unset arr
# 输出0
echo ${#arr[*]}
# 输出空行
echo ${arr[*]}for循环
for 循环必须加双括号。
#!/bin/bash
for ((i=0; i<${#tarray[@]}; i++))
do
echo index${i} is ${tarray[i]}
done
for str in "zhangsan" "lisi" "wangwu"
do
    echo $str
done
for ((i=0;i<=5;i++)) do
    echo $i
doneShell数组:Shell数组定义以及获取数组元素 https://c.biancheng.net/view/810.html
 沙滩星空的博客
沙滩星空的博客