🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #12147

Re: Bash

#12147
From: Claudio S. Suarez
Date: Sat, 18 Aug 2001 17:34
69 lines
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!claudio
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>

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