在bash脚本中,我想在两个for循环之间创建一对一的关系,每个循环都有定义为序列的变量。例如,我想要类似
for g in `seq 11 1 21`;do
for i in `seq 1 1 10`;do
cat >$i.txt <<EOF
this one is $g.
EOF
done
done
生成十个文件(1.txt,2.txt,3.txt等)。1.txt将包含“这是11”。2.txt将包含“此为12”。等等。
上面的示例是置换的,其中g的每个值作用于i的每个值。有没有办法使g的一个值以对应的顺序作用于i的一个值(即1对应于11,2对应于12,依此类推)?
任何帮助是极大的赞赏。谢谢。
arr1=( $(seq 11 21 ))
arr2=( $(seq 1 10 ))
for idx in $(seq 0 ${#arr2[*]})
do
file="/tmp/"${arr2[$idx]}".txt"
echo "This one is ${arr1[$idx]} " > $file
done
首先,将两个序列都分配给2个数组。然后,当您遍历第二个数组的长度时,将字符串框起来并写入文件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句