Seção 15.2.1 “Array Subscripts” diz que arrays podem ser indexados com [exp]
(onde exp
é uma expressão numérica) e que os elementos iniciam no índice 1 (0 se KSH_ARRAYS
estiver definido).
Seção 14.3 "Expansão de Parâmetro" diz que a sintaxe ${#array_name}
será expandida para o número de elementos de um array.
Seção 6.3 “Comandos Complexos” fornece a sintaxe de uma% numéricafor
loop (como em C): for (( initExpr ; testExpr ; stepExpr )) do … done
.
Colocando todos juntos:
for (( i = 1; i <= $#LOCAL_PATH; i++ )) do
( # subshell to contain the effect of the chdir
cd $LOCAL_PATH[i]
hg pull $REMOTE_PATH[i]
)
done
Ou, se você estiver usando KSH_ARRAYS
, então:
for (( i = 0; i < ${#LOCAL_PATH[*]}; i++ )) do
( # subshell to contain the effect of the chdir
cd ${LOCAL_PATH[i]}
hg pull ${REMOTE_PATH[i]}
)
done
Usar KSH_ARRAYS
faz as matrizes começarem com o índice 0, requer o uso de chaves para expressões de matriz e interpreta $array
as $array[0]
(exigindo uma alteração na expressão de comprimento da matriz). As alterações de sintaxe exigidas por KSH_ARRAY
também funcionarão sem KSH_ARRAY
, mas você ainda precisará ajustar a lógica para o intervalo de índice diferente (1 a N versus 0 a N-1).