Tengo un problema con for loop en bash. Por ejemplo: tengo una matriz ("etc" "bin" "var")
. E itero en esta matriz. Pero en el ciclo me gustaría agregar algún valor a la matriz. P.ej
array=("etc" "bin" "var")
for i in "${array[@]}"
do
echo $i
done
Esto se muestra etc
bin
var
(por supuesto, en líneas separadas). Y si agrego después do
así:
array=("etc" "bin" "var")
for i in "${array[@]}"
do
array+=("sbin")
echo $i
done
Quiero: etc
bin
var
sbin
(por supuesto, en líneas separadas).
Esto no está funcionando. ¿Cómo puedo hacerlo?
Respuestas:
Se va a añadir "sbin" 3 veces como debe ser, pero no va a iterar sobre el recién agregado "sbin" s en el mismo bucle.
Después del segundo ejemplo:
fuente
for
bucles entonces. Primero realice sus adiciones, luego repita el resultado.array+=(sbin); for i in ...
Eso iterará sobre su lista, agregará
sbin
al final de dicha lista condicionalmente e incluirásbin
en el contenido iterable.fuente