Linux en Espanol
 
error script date (tema #24207)
Publicar nuevo tema  Responder al tema    Foros de discusión -> Programación
Autor Mensaje
Lamarkus
Forista
Registrado: 2011-12-15
Mensajes: 3

Publicado: 2011-12-30 00:25:35    Asunto: error script date

Hola gente

Soy algo novato por el foro, pero queria pedirles ayuda con mi script, les explico tengo que hacer un script el qual sincronize los relojes del cliente y servidor, es decir que cuando el cliente solicite algo sumarle el retardo de la respuesta de la red hasta el servidor.
Les ense?o mi script

Fecha.sh
#!/bin/bash
clear
A=$(ping -c3 172.16.5.10 | grep rtt | cut -f4 -d " " | cut -f2 -d "/")
B=$(date "+%s")
a3=$(echo "scale=3;$A+$B"| bc -l)
r=$(date -d @$a3 "+%d-%m-%Y %H:%M:%S")
echo $r

lo ejecuto en la terminal principal y me da el siguiente error:

standard_in) 1: syntax error
date: invalid date `@'

a ver si ustedes pueden ver el error porque yo sinceramente no :S

queria hacer otra pregunta des de un host como se puede iniciar un script porque le doi sh Fecha.sh y me dice que no lo encuentra en fin muchas gracias llevo to el dia aqui cualquier ayuda sera muy agradecida feliz a?o :D
miguelgf
Forista


Registrado: 2006-12-28
Mensajes: 621

Publicado: 2012-01-03 00:25:26    Asunto:

Hola.

En general, en los script en bash, las comillas mejor que sobren a que falten. Tu problema es que la l?nea:
[code:1:f9d6838b37]r=$(date -d @$a3 "+%d-%m-%Y %H:%M:%S") [/code:1:f9d6838b37]
deber?a ser
[code:1:f9d6838b37]r=$(date -d "@$a3" "+%d-%m-%Y %H:%M:%S") [/code:1:f9d6838b37]
para que el shell no trate de interpretar el car?cter "@" sino que se lo pase directamente a "date" que esta herramienta ya sabr? qu? hacer con ella.

[quote:f9d6838b37="Lamarkus"]queria hacer otra pregunta des de un host como se puede iniciar un script porque le doi sh Fecha.sh y me dice que no lo encuentra[/quote:f9d6838b37]
?Puedes explicar un poco m?s eso?. Es que con sh deber?as poder ejecutar cualquier script incluso no marcado como ejecutable. ?No ser? un problema de may?sculas/min?sculas Fecha.sh <> fecha.sh?

Saludos.

Miguel.
Natch
Forista
Registrado: 2012-08-08
Mensajes: 2

Publicado: 2012-08-08 09:51:01    Asunto:

Buenas,

aprovechando este hilo mi pregunta es algo similar con la funci?n date.
Lo que quiero es convertir la fecha unix en formato legible tal que as?:

date -d '1970-01-01 UTC 1344418051 seconds' +"%Y-%m-%d %T"
2012-08-08 11:27:31

Pero para incluirlo en mi shell script lo estoy introduciendo de este modo:
fecha=1344418051

date -d '1970-01-01 UTC $fecha seconds' +"%Y-%m-%d %T"

pero el resultado que me devuelve es este:
date: invalid date `1970-01-01 UTC $fecha seconds'

Entiendo que no est? sustituyendo el valor de la variable y me gustar?a que me iluminarais porque estoy algo perdido.

Gracias de antemano.
Natch
Forista
Registrado: 2012-08-08
Mensajes: 2

Publicado: 2012-08-08 10:05:25    Asunto:

Disculpad, me autorespondo en este caso en lugar de usar las comillas simples que toman todo el contenido literalmente las sustituyo por comillas dobles que si sustituyen el valor de la variable:

date -d "1970-01-01 UTC $fecha seconds" +"%Y-%m-%d %T"

Gracias





La marca registrada Linux (R) se usa siguiendo la sublicensia obtenida del "Linux Mark Institute",
el LICENCIATARIO exclusivo de Linus Torvalds, propietario de la marca en EEUU y otros países
The registered trademark Linux (R) is used pursuant to a sublicense from the Linux Mark Institute,
the exclusive LICENSEE of Linus Torvalds, owner of the mark in the U.S. and other countries