关联数组
- 定义数组
declare -A data #注意,必须declare -A声明该关联数组变量,否则可能会导致数组不可用
data=(
[101]=D101
[102]=D102_103
[103]=D102_103
)
declare -A data
data=(
[file0]=D101
[file1]=D102_103
[file2]=D102_103
)
for ((i=0;i<=2;i++))
do
echo ${data[file$i]}
done
- 遍历数组
for i in "${!data[@]}"
do
echo ${data[$i]}
done
for i in "${!array[@]}"
do
echo ${array[$i]}
done
结果:
root@centos7-132:[/root]sh test.sh
168
158
D101
D102_103
D102_103
root@centos7-132:[/root]
索引数组
- 定义数组
array=( 1 'hello' 5)
- 遍历索引数组
for i in ${!array[*]}
do
echo ${array[$i]}
done
- 分片访问
${data[@]:1:4} # 输出下标为1及随后的3个元素值 (${data_array[@]:start:length})
- 其他
echo ${!array[*]} #取关联数组所有键
echo ${!array[@]} #取关联数组所有键
echo ${array[*]} #取关联数组所有值
echo ${array[@]} #取关联数组所有值
echo ${#array[*]} #取关联数组长度
echo ${#array[@]} #取关联数组长度
- 其他
在linux bash中,有个特殊的变量,叫IFS(Internal Field Separator),当shell需要对字符串进行分割时,则使用IFS值作为分割符。该字段的默认值为空格,回车和tab符。shell中将字符串放在括号内,则会将字符串分割成数组
参考:
https://blog.csdn.net/mm_bit/article/details/48417157
http://www.cnblogs.com/python2687806834/p/9851412.html
https://blog.csdn.net/qq_22075977/article/details/75209149