带有bash脚本的Git镜像被困在3 for循环中



git1---->git3(必须使用path1(

git2-->git4(必须使用path2(

git1不能克隆到git4,或者git2不能克隆到git3。每次都应该按照上面的方式工作。脚本开始获取git1,它必须继续并以这种方式保存下一个值git1-git3-path1,当第一个循环完成时,它应该开始第二个循环,就像git2-git4-path2 一样

我的划痕

A_sources=(git1 git2)
B_destinations=(git3 git4)
C_filename=(path1 path2)
workdir="/home/"


for A in "${A_sources[@]}"; do
for B in "${B_destinations[@]}"; do
for C in "${C_filename[@]}"; do
git clone --mirror "${A}"
cd "${workdir}/${C}"9
git remote set-url --push origin "${B}"
done
done
done

索引上的一个循环,而不是元素上的三个嵌套循环,例如

# ensure the size are equal
(( ${#A_sources[@]} == ${#B_destinations[@]} && ${#B_destinations[@]} == ${#C_filename[@]})) || { echo "arrays sizes are not equals"; exit 1;}
for ((i=0;i<${#A_sources[@]};i+=1)); do
git clone --mirror "${A_sources[i]}"
cd "${workdir}/${C_filename[i]}"9
git remote set-url --push origin "${B_destinations[i]}"
done

最新更新