我在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
答案 0 :(得分:1)
如果数组具有相同的长度,则可以按索引访问元素:
for ((i=0; i<${#ARR_MPOINT[@]}; i++)); do
echo "/dev/mapper/VolGroup01-${ARR_LVNAME[i]} ${ARR_MPOINT[i]} xfs defaults 1 2"
done
答案 1 :(得分:0)
您可以将/
替换为lv_
,并仅使用第一个数组来获取输出:
for MPOINT in "${ARR_MPOINT[@]}"; do
echo "/dev/mapper/VolGroup01-${MPOINT//\//lv_} $MPOINT xfs defaults 1 2"
done