[ubuntu-ar] echo en bash

Hugo M ham1988 at gmail.com
Sat Apr 30 19:58:34 UTC 2011


Ey, ahí me funcionó usando variables globales, gracias!

Por cierto, me llama la atención el manejo de funciones bash, es todo lo
contrario a lo que había visto (puede acceder a las variables del scope "de
arriba"!!??) antes pero bueno, ya entendí como es y puedo usarlo :)

Saludos!

El 30 de abril de 2011 14:09, Marcelo Fernandez <
marcelo.fidel.fernandez en gmail.com> escribió:

> El día 30 de abril de 2011 13:32, Hugo M <ham1988 en gmail.com> escribió:
> > Perdón, tenés razón en lo que decís, pero me expresé mal, mi problema
> viene
> > cuando tengo varias funciones una adentro de otra. La de mas "adentro" es
> > interactiva, pero fijate en este ejemplo, el usuario nunca va a leer
> > "ingrese un número", sino que lo va a leer al final, apendeado al output
> de
> > bla2 (y de hecho bla2 no va a funcionar bien, porque recibe un input
> > erróneo).
> >
> >
> > #!/bin/bash
> > function bla_interactiva() {
> >  echo -n "Ingrese un número:";
> >  numero=0;
> >  read numero;
> >  echo $numero;
> > }
> > function bla2() {
> >    content=$(bla_interactiva)
> >     #proceso de la variable content
> >     echo $processed_content
> > }
> > bla2
> >
> > Mi problema no es de sintáxis sino conceptual, hay alguna forma de
> redirigir
> > directamente a la terminal? Si no la hay, qué se hace en estos casos?
> > Repetir código es algo que no me gusta y la función interactiva tiene
> 15-20
> > líneas y se usa en varios lugares. Si bien no es tan grave, me gustaría
> > saber si hay una forma "correcta" de hacer esto.
>
> Entiendo, no sé bien en detalle porqué te pasa, pero con una variable
> global funciona:
>
> #!/bin/bash
> numero=
> function bla_interactiva() {
>  echo -n "Ingrese un número:";
>  read numero;
> }
> function bla2() {
>    bla_interactiva;
>    echo $numero
> }
> bla2
>
> Recordá que el () abre un subshell y no te comparte nada con el shell
> padre.
>
> Leete esto: http://tldp.org/LDP/abs/html/subshells.html#PARVIS
>
> Saludos
> --
> Marcelo F. Fernández
> Buenos Aires, Argentina
> Licenciado en Sistemas - CCNA
>
> E-Mail: marcelo.fidel.fernandez en gmail.com
> Blog: http://blog.marcelofernandez.info
> Twitter: http://twitter.com/fidelfernandez
>
> --
> Ubuntu-ar lista de correo
> Ubuntu-ar en lists.ubuntu.com
> Modifica tus opciones o desuscribite en:
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-ar
> Siempre leer, comprender y aplicar nuestra etiqueta:
> https://wiki.ubuntu.com/ArgentinaTeam/EtiquetaML
>
>
------------ pr?xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://lists.ubuntu.com/archives/ubuntu-ar/attachments/20110430/89c4ea92/attachment.html>


More information about the Ubuntu-ar mailing list