【发布时间】:2017-12-02 16:10:06
【问题描述】:
我在 bash 脚本中有两个数组,每个数组都有相同数量的元素,我需要在 for 循环中为第一个数组中的每个元素编写第二个数组的每个元素
第一个数组名称:ARR_MPOINT
第二个数组名:ARR_LVNAME
脚本片段:
ARR_MPOINT=(/tmp /var /log);
ARR_LVNAME=(lv_tmp lv_var lv_log)
for MPOINT in "${ARR_MPOINT[@]}"
do
echo "/dev/mapper/VolGroup01-${ARR_LVNAME[@]} $MPOINT xfs defaults 1 2"
done
I need to print below output
/dev/mapper/VolGroup01-lv_tmp /tmp xfs defaults 1 2
/dev/mapper/VolGroup01-lv_var /var xfs defaults 1 2
/dev/mapper/VolGroup01-lv_log /log xfs defaults 1 2
【问题讨论】:
-
一个迭代
ARR_LVNAME的嵌套 for 循环应该可以解决问题。刚刚意识到您想要 3 次迭代而不是 9 次,但要在同一索引处访问两个数组。 -
使用像
for i in {0..$ARRAY_SIZE}这样的for循环。然后像echo "/dev/mapper/VolGroup01-${ARR_LVNAME[i]} ${ARR_MPOINT[i]} ..." -
如何编辑 ${ARR_LVNAME[@]} ?