linux数组

关联数组

  • 定义数组
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

posted @ 2018-12-24 20:42  岳麓丹枫  阅读(152)  评论(0编辑  收藏  举报