Article View: es.comp.os.linux.programacion
Article #7428Re: bash decimales
From: J.A. Gutierrez
Date: Thu, 27 Feb 2003 10:03
Date: Thu, 27 Feb 2003 10:03
123 lines
5269 bytes
5269 bytes
"J.A. Gutierrez" <spd@daphne.cps.unizar.es> writes:
: > Pascal Bourguignon <pjb@informatimago.com> wrote:
:
: > 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.
total=`ls -ld *|(t=0;while read p l o g s f; do t=\`expr \$t + \$s\`;done; echo \$t)`
echo $total
: > ls -l *80.* | awk '/^-/{t=t+$5} END {print t}'
:
: Ya. awk me vale tambien, por las cosas simples. Pero no es mas sh.
bueno, muy pocos scripts son sh puro, muchos invocan a filtros
externos (cut, awk, sed, tr, etc), que para eso estan. La idea
de unix no es que "sh" tenga que hacer todo internamente, si no
que todo se haga a base de combinar programas.
:
:
: > : 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.
no importa si
a) no te importa el espacio en disco adicional que ocupe la instalacion.
b) es tu maquina. Puede haber casos en los que estes trabajando
en otra maquina y no te permitan instalar nada.
c) tienes conexion a internet.
:
: Por ejemplo, ver como perl se a extendido.
vale, cuando scsh este tan extendido como perl, seguimos con el
tema :-)
(por otra parte, no es extra~no, ya que perl sigue una filosofia
mezcla de c/sh/sed fuertemente implantada en Unix)
:
: > - 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!
ok
:
: 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:
:
me temo que te equivocas.
Cierto que hay cosas que no se pueden hacer en sh, e incluso
otras que aunque se puede, hay mejores alternativas...
Pero una construccion como la del dibujo:
:
: +----------+
: file-1 --------------------->| |------------------------> file-3
: | pgm2 |
: +--------+ pipe | | pipe +-----------+
: | |----->| |------->| |
: stdin ------>| pgm1 | +----------+ | |
: | | pipe | |---> stdout
: | |------------------------->| pgm3 |
: +--------+ | |
: | |
: file-2 ----------------------------------------->| |
: +-----------+
:
si que se puede hacer en sh:
mknod pipe1 p
mknod pipe2 p
cat file-1 >> pipe1 &
pgm1 | tee pipe1 >> pipe2
cat file-2 >> pipe2 &
pgm2 < pipe1 | tee file-3 >> pipe2 &
pgm3 < pipe2 &
rm pipe1 pipe2
(a ojo, no lo he probado)
(Por cierto, cuando fue la ultima vez que necesitaste hacer
algo asi?)
--
PGP and other useless info at \
http://www.cps.unizar.es/~spd/ \
finger://daphne.cps.unizar.es/spd \ Timeo Danaos et dona ferentes
ftp://ivo.cps.unizar.es/pub/ \ (Virgilio)
Technical Details
Message-ID:
<b3knpa$m7s$1@news.unizar.es>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newshosting.com!news-xfer1.atl.newshosting.com!news-out.newsfeeds.com!propagator2-maxim!news-in.spamkiller.net!news.telia-iberia.com!bashful.rediris.es!news.unizar.es!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-27 16:39:01 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newshosting.com!news-xfer1.atl.newshosting.com!news-out.newsfeeds.com!propagator2-maxim!news-in.spamkiller.net!news.telia-iberia.com!bashful.rediris.es!news.unizar.es!not-for-mail
From: "J.A. Gutierrez" <spd@daphne.cps.unizar.es>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: bash decimales
Date: 27 Feb 2003 10:03:22 GMT
Organization: Rank
Lines: 123
Message-ID: <b3knpa$m7s$1@news.unizar.es>
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: daphne.cps.unizar.es
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Trace: news.unizar.es 1046340202 22780 155.210.152.20 (27 Feb 2003 10:03:22 GMT)
X-Complaints-To: usenet@news.unizar.es
NNTP-Posting-Date: 27 Feb 2003 10:03:22 GMT
User-Agent: tin/1.4.5-20010409 ("One More Nightmare") (UNIX) (IRIX/6.2 (IP22))