¿Hay alguna manera de crear variables bash y asignarles valores a través de un bucle?
Algo en la línea de:
#!/bin/bash
c=0
for file in $( ls ); do
var"$c"="$file";
let c=$c+1;
done
EDITAR: Gracias a @Costas y @mdpc por señalar que esta sería una mala alternativa a una lista; La pregunta es solo teórica.
bash
shell
shell-script
toxefa
fuente
fuente
var"$c"
lo rompe La respuesta de @Costas demuestra cómo asignar múltiples valores a una sola variable de lista: solo estoy preguntando teóricamente si las variables realmente se pueden generar con un bucle.Respuestas:
Bueno, absolutamente puedes usar eval de la siguiente manera:
Este código creará variables llamadas var0, var1, var2, ... cada una con el nombre del archivo. Supongo que tendrá una buena razón por la que desea hacerlo usando una matriz ...
fuente
Posible te refieres a matriz. Hay algunas formas de asignar valores.
Primero:
Segundo:
Tercero:
Cuarto:
Quinto
...
ls
, solo ponga*
todos los archivos[]
del$
letrero se puede omitirfuente
echo $var
los comandos que enumeras arriba solo obtengo el primer archivo 'listado' porls
. ¿Estoy haciendo algo mal?echo ${var[*]}
(o${var[@]}
), se puede llamar como elemento únicoecho ${var[1]}
. Nota:$var
es igual${var[0]}
for v in "${var[@]}";do echo $v;done