El 14 de noviembre de 2012 19:27, Guillermo <ruworuro(a)gmail.com> escribió:
Hi,
Hace nada encontré los array en bash y aunque no se pueden exportar si
puedes hacer funciones del tipo:
testeo()
{
local _resul=$1
output=( $(ls) )
eval $_result=\(${output[@]}\)
}
y llamando
$ testeo files
¡Otia que galimatías! Si quieres meter todos los ficheros de un
directorio en un array ¿No te es más fácil hacer?
files=( $(ls) )
ó
files=( `ls` )
si te gusta más usar el acento inverso que el $(). (Yo suelo poner el
$() cuando escribo en foros porque algunos se empeñan en reformatear
los acentos ` y ponerlos como apostrofos ' )
Claro que tanto tu versión como la mía fallan con los ficheros que
tengan espacios en blanco, que los parte en varios elementos por los
espacios. Podríamos solucionarlo con
function llenaarray
{
files=( "$@" )
}
llenaarray *
O si quieres que el nombre de la variable sea variable como en tu ejemplo
function llenaarray
{
local nombre=$1
shift
$nombre=( "$@" )
}
llenaarray files *
Me alegra que hayas descubierto de lo que es capaz el bash.... ;-)
"Any fool can write code that a computer can understand. Good
programmers write code that humans can understand" (Martin Fowler)
--
Saludos de Redy: Linuxita por sistema y GNUdista por naturaleza.
[
parolas.thebbs.org 100% Linux native ]
In a world without frontiers, who needs Gates and Windows?