定义
用括号 ( )
来表示数组,数组元素之间用 空格
来分隔。
- 赋值号
=
两边不能有空格 - 常用的 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
done
Shell数组:Shell数组定义以及获取数组元素 https://c.biancheng.net/view/810.html