Article View: es.comp.os.linux.programacion
Article #12147Re: Bash
From: Claudio S. Suarez
Date: Sat, 18 Aug 2001 17:34
Date: Sat, 18 Aug 2001 17:34
69 lines
3372 bytes
3372 bytes
El Fri, 17 Aug 2001 12:19:26 -0300, Francisco F. Artese escribi�:
>-----BEGIN PGP SIGNED MESSAGE-----
>Hash: SHA1
>
>Gonzalo Paniagua Javier <gpanjav@jazzfree.com> escribi�:
>> Francisco F. Artese <frank@artese.com.ar> escribi�:
>
>> Toma. Aqu� lo tienes. :-)
>
>> ************
>> #!/bin/bash
>
>> horac=`date | cut -f4 -d" " | cut -f1 -d":"`
>> minutosc=`date | cut -f4 -d" " | cut -f2 -d":"`
>> segundosc=`date | cut -f4 -d" " | cut -f3 -d":"`
>
>> hc=`expr ${horac} \* 60 + ${minutosc} + ${segundosc} / 60`
>
>> echo $hc
>> ***********
>
>Hojala!!! lo tenga Gonzalo.
>
>este es el resultado:
>expr: error de sintaxis
Da la impresi�n de que alguna de las variables est� vac�a o
contiene valores extra�os.
Yo que tu pondr�a un "set -x" al principio, que te
va mostrando todo lo que se va haciendo.
>No se.. sigo insistiendo que el error es porque horac es un literal y no
>una variable num�rica.
�No hombre! La shell solo trabaja con cadenas de caracteres.
Si quieres hacer la prueba para convencerte puedes tomar como
ejemplo el mismo comando expr.
expr concatena sus argumentos, dejando un espacio entre ellos,
eval�a la cadena as� obtenida y saca el resultado a la salida
est�ndar.
Por ejemplo:
bash$ expr 10 + 4
14
bash$ A="12 +"
bash$ B=5
bash$ expr $A $B
17
Como ves, el "12 +" es una simple cadena... la shell no se ocupa de
detalles: se la pasa como argumento a expr y ya.
>Por eso mi pregunta original era como convertir horac en num�rica, pero
>me contestaron que no hacia falta.
Si tienes inter�s, puedes declarar las variables con typeset -i
(la i es de integer).
Pero eso no le da a la variable un caracter de num�rica, la shell
internamente la sigue tratando como cadena y se la pasa a los
comandos (por ejemplo a expr) como cadena. Lo �nico es que si
intentas asignarle un valor no num�rico, te guardar� un 0.
>entonces porque no funciona ninguna de las sintaxis que amablemente me
>suger�s ?????????????????
A mi me funcion� bien y a la primera, simplemente copiando y pegando.
!!??? � Por qu� a ti no ?
Un saludo.
--claudio--
Technical Details
Message-ID:
<slrn9nt9pt.82.claudio@cacho.celta>Path:
arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!skynet.be!skynet.be!Amsterdam.Infonet!News.Amsterdam.UnisourceCS!newsinternetskywayteltow!post.skyway.de!news.jazztel.es!ningun.host!claudioReferences:
<hj97l9.p7j.ln@127.0.0.1> <slrn9nj7i2.b7.claudio@cacho.celta> <rgehl9.4u3.ln@127.0.0.1> <etfil9.tb.ln@127.0.0.1> <ulcjl9.8v1.ln@127.0.0.1>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,9df979b8f9cb249b X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2001-08-18 10:24:26 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!skynet.be!skynet.be!Amsterdam.Infonet!News.Amsterdam.UnisourceCS!newsinternetskywayteltow!post.skyway.de!news.jazztel.es!ningun.host!claudio From: claudio@ningun.sitio.es (Claudio S. Suarez) Newsgroups: es.comp.os.linux.programacion Subject: Re: Bash Lines: 69 Message-ID: <slrn9nt9pt.82.claudio@cacho.celta> References: <hj97l9.p7j.ln@127.0.0.1> <slrn9nj7i2.b7.claudio@cacho.celta> <rgehl9.4u3.ln@127.0.0.1> <etfil9.tb.ln@127.0.0.1> <ulcjl9.8v1.ln@127.0.0.1> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Server-Date: 18 Aug 2001 17:34:54 GMT X-Newsreader: slrn (0.9.4.3 UNIX) Date: 18 Aug 2001 17:34:54 GMT NNTP-Posting-Host: 212.106.240.24 X-Complaints-To: newsmaster@jazztel.com X-Trace: news.jazztel.es 998154351 212.106.240.24 (Sat, 18 Aug 2001 19:05:51 CEST) NNTP-Posting-Date: Sat, 18 Aug 2001 19:05:51 CEST Organization: Jazztel