Article View: es.comp.os.linux.programacion
Article #7535Re: bash decimales
From: Pascal Bourguignon
Date: Mon, 24 Feb 2003 09:00
Date: Mon, 24 Feb 2003 09:00
108 lines
5017 bytes
5017 bytes
"J.A. Gutierrez" <spd@daphne.cps.unizar.es> writes:
> Pascal Bourguignon <pjb@informatimago.com> wrote:
> : tots=0
> : ls -l | grep '80.' | while read p l o g s m d hy n ; do
> : tots=$(( $tots + $s ))
> : done
> : echo $tots
> : (Y si, s� perfectamente porque no funciona y que se puede hacer para
>
> cual es el problema? Cada lenguaje tiene sus reglas; y
> en este caso se trata del ambito de una variable.
Pues eso. Que las reglas de los shells para programar no me convienen
y que rapidamente necesito un verdadero lenguaje de programaci�n en
lugar de esos bajatos hacks.
> sh ->
> t=0
> ls -l *80.* | (while read p l o g s foo; do t=`expr $t + $s`; done; echo $t)
Si solo se quiere imprimir $t vale. Pero obviamente, se quiere usar
esta variable despues.
> Y si no, utiliza ksh
>
> ksh ->
> let t=0
> ls -l *80.* | while read p l o g s f; do let t=$t+$s; done; echo $t
>
>
> : obtener el resutado, solo que ne quiero m�s contorcionarme: no m�s de 2
> : l�neas de shell o paso a lisp).
>
> 2 lineas? para que?
>
> ls -l *80.* | awk '/^-/{t=t+$5} END {print t}'
Ya. awk me vale tambien, por las cosas simples. Pero no es mas sh.
> : scsh por ejemplo (Scheme Shell).
>
> Vale, de acuerdo; esa implementacion de Scheme si que esta
> pensada para eso. En todo caso no se si considerar eso LISP
> puro; mas bien parece un LISP con extensiones para convertirlo
> en shell.
>
>
> Pegas:
> - no viene por defecto en practicamente ningun unix.
Eso no importa mucho hoy en dia, con los programas libres, los
espacios disponibles en nuestros discos duros, y el acceso universal a
Internet, cualquier heramienta se puede obtener en cinco minutos con
un par de clics.
Por ejemplo, ver como perl se a extendido.
> - existe una gran cantidad de literatura sobre tareas
> tipicas de unix en sh y muy poca para scsh.
Por eso, hablemos de alternativas. �Un poco de pedagogia!
> No niego que a alguien que este mas acostumbrado a la programacion
> funcional y que prefiera ignorar las convenciones de unix, LISP
> (que nadie discute que como lenguaje sea mas robusto y mejor
> concebido y especificado) le resulte mas atractivo...
Pero tambien a alguien que no este acostumbrado, porque suelen tener
problemas con los shell que se resuelve facilmente con cualquier otro
lenguaje.
Tan bien, si solo se usa los shell, se esta limitando a lo que saben
hacer estos shells. Por ejemplo, con el pipe solo se puede hacer
sequencias simple de tubos. Pero cuando se trata de implementar eso
en lisp, rapidamente y facilmente se generaliza y ahora puedo hacer
pipes multiples igual de facil. Cosas asi:
+----------+
file-1 --------------------->| |------------------------> file-3
| pgm2 |
+--------+ pipe | | pipe +-----------+
| |----->| |------->| |
stdin ------>| pgm1 | +----------+ | |
| | pipe | |---> stdout
| |------------------------->| pgm3 |
+--------+ | |
| |
file-2 ----------------------------------------->| |
+-----------+
Lo que quiere decir es que a usar lenguajes m�s potentes como shells,
se podria evolucionar m�s haya del simple CLI, hacia un interfaz
usuario m�s inteligente.
--
__Pascal_Bourguignon__ http://www.informatimago.com/
----------------------------------------------------------------------
There is a fault in reality. Do not adjust your minds. -- Salman Rushdie
Technical Details
Message-ID:
<87el5ym4sl.fsf@thalassa.informatimago.com>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!fu-berlin.de!uni-berlin.de!213.220.35.225!not-for-mailReferences:
<e6gvh-n35.ln1@paldaria.dsland.org> <87of5e86l2.fsf@thalassa.informatimago.com> <b2q8u7$gbk$1@news.unizar.es> <87of561jeb.fsf@thalassa.informatimago.com> <b3ck61$2ga$1@news.unizar.es>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,362864e02625d68a X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2003-02-24 01:00:57 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!fu-berlin.de!uni-berlin.de!213.220.35.225!not-for-mail From: Pascal Bourguignon <pjb@informatimago.com> Newsgroups: es.comp.os.linux.programacion Subject: Re: bash decimales Date: 24 Feb 2003 10:00:42 +0100 Organization: informatimago.com Lines: 108 Sender: pascal@thalassa.informatimago.com Message-ID: <87el5ym4sl.fsf@thalassa.informatimago.com> References: <e6gvh-n35.ln1@paldaria.dsland.org> <87of5e86l2.fsf@thalassa.informatimago.com> <b2q8u7$gbk$1@news.unizar.es> <87of561jeb.fsf@thalassa.informatimago.com> <b3ck61$2ga$1@news.unizar.es> NNTP-Posting-Host: 213.220.35.225 Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Trace: fu-berlin.de 1046077255 55314539 213.220.35.225 (16 [41911]) User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2