Supondo que você esteja usando bash
, é possível iterar o array usando índices, em vez de valores, com a construção ${!array[@]}
e, em seguida, substitua cada elemento pelo novo valor:
for target_item in "${!target_array[@]}"; do
x=111
y=222
z=333
target_array["$target_item"]+=" -x$x -y$y -z$z"
done
Infelizmente, não é possível, em bash
, desdobrar o índice de um elemento da matriz do seu valor.
Em zsh
você pode simplificar o procedimento com um chamado sinalizador subscrito especial (i)
e fazer um loop sobre uma matriz normalmente:
for target_item in "${target_array[@]}"; do
x=111
y=222
z=333
i="${target_array[(i)$target_item]}"
target_array[$i]+=" -x$x -y$y -z$z"
done