O erro principal é que for i in $arrayVM
define i
como o primeiro elemento em arrayVM
, pois não há índice. Estou surpreso que isso não dê um erro no comando echo
, a menos que o primeiro elemento da matriz seja numérico.
O que você precisa é da forma iterativa de for
: -
for (( i=0; i<${#arrayVM[*]}; ++i ))
do
echo ${arrayVM[$i]}>>list
done
No entanto, isso é desnecessariamente prolixo: muito mais simples é: -
for e in "${arrayVM[@]}"
do
echo $e>>list
done
Isso atribui e
a cada elemento, por sua vez, sem enumerá-los.
À luz da resposta de Fedorqui, se arrayVM
não for necessário em outro lugar, então existe uma maneira muito mais simples de criar o arquivo de lista: -
cat /orch/servers | grep $1 | awk '{print $1}' >/orch/list
Ou, como o cat
é desnecessário : -
grep $1 </orch/servers | awk '{print $1}' >/orch/list