On Thu, 2004-07-29 at 12:47, Carlos Iriondo wrote: > Hola Cesar. Carlos.
Estoy copiando de vuelta a la lista, para el archivo. > No he conseguido hacer funcionar el script que me diste, porque no > entiendo bien su funcionamiento. Lee el manual builtins(7), especialmente el comando "read". Creo que todo lo que hay que saber acerca de este script est� documentado en esa secci�n. Si no est�s a gusto con los manuales en ingl�s, instala manpages-es-extra. Ah� vienen bash(1) y builtins(7) en espa�ol. Otras referencias: http://es.tldp.org/COMO-INSFLUG/COMOs/Bash-Prog-Intro-COMO/ http://www.demiurgo.org/doc/shell/shell.html > Lo copie a un archivo que se llama prueba.sh tal como te muestro a > continuacion. [...] > Pero no funciona me dice: ./prueba.sh: datos[0]: command not found Curioso. Acabo de usar tu mensaje para recrear el script y el archivo de datos, y funciona perfectamente en mi m�quina. Parece que tu bash no soportara arreglos, o algo as�. �Qu� versi�n est�s usando? Como sea, me hiciste leer el manual de nuevo, y darme cuenta de lo sucio que es usar un arreglo para esto. Prueba mejor as�: ------------------------------------------------------------------------ #! /bin/sh while IFS=: read -r usuario nombre grupo home do echo "Usuario: [$usuario]" echo "Nombre: [$nombre]" echo "Grupo: [$grupo]" echo "Home: [$home]" done ------------------------------------------------------------------------ Hasta donde s� esto no contiene "bashismos", deber�a correr en cualquier shell POSIX. Yo lo prob� en bash, pdksh, ash y dash. Me sorprender�a mucho que tuvieras problemas con esto. > Debe ser realmente trivial, pero no s� como se hace esto, como dije no > conozco practicamente nada de scritp y menos aun bash, sed, etc. Aparte > mi ingles no es muy bueno para entender la documentacion ------------------------------------------------------------------------ #! /bin/sh if [ $# -ne 1 ] ; then echo "Uso: $0 archivo" >&2 exit 1 fi (while IFS=: read -r usuario nombre grupo home do echo "Usuario: [$usuario]" echo "Nombre: [$nombre]" echo "Grupo: [$grupo]" echo "Home: [$home]" done) < "$1" ------------------------------------------------------------------------ T� dir�s si es trivial o no. Alternativamente, puedes definir el while dentro de una funci�n, y llamar a la funci�n redirigiendo su entrada. Yo har�a eso si hubiera mucho c�digo dentro de ese while. -CR

