以下是我的例子。我正在嘗試創建一個腳本來做git clone + git pull。現在下面我想迭代第二個數組(A_modules)來檢查是否有任何repos文件夾存在或不存在,如果不創建它,然後cd到它,並做混帳拉。問題是我如何使用第一個數組中的一個作爲變量的第二個數組名稱來循環。在第二個循環中,$ {DIR [@]};不起作用!需要了解如何將$ {DIR [@]}擴展爲$ {A_modules [@]}。 我可以很容易地做到這一點與第3陣列中的3個循環的3個值。但任何更聰明的方式來實現這種方式,我想..非常感謝。如何遍歷循環中的多個數組
#!/bin/bash
BASE_FOLDER=/opt/xyz
declare -a DIR_TOP=(A_modules customers C_modules)
declare -a A_modules=(python_repo java_repo perl_repo)
declare -a customers=(repo1 repo2 repo3)
declare -a C_modules=(xy_repo1 yz_repo2)
#GIT clone.
cd ${BASE_FOLDER}
for DIR in ${DIR_TOP[@]}; do
if [ ! -d "${DIR_TOP[$DIR]}" ]; then
mkdir -p ${BASE_FOLDER}/${DIR}
fi
for REPO in ${DIR[@]}; do
cd ${BASE_FOLDER}/${DIR_TOP[$DIR]}/
if [ ! -d "${REPO]}" ]; then
mkdir ${REPO}
echo "Git cloning ${DIR_TOP[$DIR]} group repositorys: ${REPO} ..."
git clone --branch 8.0 https://${GIT_USER}@${GIT_SERVER}/r/${DIR_TOP[$DIR]}/${REPO}.git
fi
done
done
http://mywiki.wooledge.org/BashFAQ/006 –