Necesito iterar en una matriz y expandir la matriz mientras itero. ¿Cómo lo hago en BASH?
Por ejemplo:
req="a b c d"
read -a MODULES <<<$req
for MODULE_NAME in "${MODULES[@]}"; do
echo $MODULE_NAME
if something-happens-only-one-time; then
MODULES+=( "e" )
fi
done
Quiero obtener el siguiente resultado:
a
b
c
d
e
Editar:
El siguiente código funciona por ahora:
i=0
while true; do
MODULE_NAME="${MODULES[$i]}"
echo ${MODULE_NAME}
if something-happens-only-one-time; then
MODULES+=( "e" )
fi
i=$((i+1))
num_of_modules=${#MODULES[@]}
if (("$i" >= "$num_of_modules")) ; then
break
fi
done
Puede canalizar la matriz para ordenar y luego uniq -u. Saldrá cualquier miembro que aparezca solo una vez. Ver stackoverflow.com/questions/618378/…
—
Argonauts