定义
用括号 ( ) 来表示数组,数组元素之间用 空格 来分隔。
- 赋值号
=两边不能有空格 - 常用的 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
沙滩星空的博客