Bash数组 - 选择所选成员(切片)并将它们放入一个新变量中

时间:2014-05-13 13:08:54

标签: arrays bash variables

array1=$(command1)

echo ${array1[@]}
292102 Mon May 12 22:35:12 2014 289368 Mon May 12 14:18:47 2014 280508 Mon May 12 13:44:12 2014 293976 Mon May 12 12:04:08 2014 293227 Mon May 12 03:07:28 2014 291745 Mon May 12 01:46:23 2014

我需要运行循环,我在第一个循环中设置变量:

${TN}=292102
${LastUpdated}="Mon May 12 22:35:12 2014"

所以它应该是这样的:

${TN}=${array1[0]}
${LastUpdated}="${array1[1]}${array1[2]}${array1[3]}${array1[4]}${array1[5]}"

每个$(command1)

后,数组成员的数量会发生变化

如何根据新生成的n个成员数组编写一些设置变量的循环?

编辑: 只是为了澄清,因为我的问题被标记为不清楚,我需要切片数组以设置变量并将一些切片连接在一起以组成变量作为日期值,例如。 “2014年5月12日星期一22:35:12”,我无法用正确的方式描述它,因为我之前没有听说过阵列切片。

1 个答案:

答案 0 :(得分:3)

使用数组切片:

i=0;
while [ $i -lt $((${#array1[@]}/6)) ]; do
     TN=${array1[i*6]}
     LastUpdated="${array1[@]:i*6+1:5}"
     #Do something with TN & LastUpdated here...
     ((i++))
done