Preciso iterar em uma matriz e expandir a matriz enquanto iterativo. Como faço isso em BASH?
Por exemplo:
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
Eu quero obter a seguinte saída:
a
b
c
d
e
Editar:
Seguir o código funciona por agora:
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
Você pode canalizar a matriz para classificar, em seguida, uniq -u. Ele produzirá quaisquer membros que apareçam apenas uma vez. Vejo stackoverflow.com/questions/618378/…
—
Argonauts