Foros del Web » Administración de Sistemas » Unix / Linux »

poner resultado de date en una variable

Estas en el tema de poner resultado de date en una variable en el foro de Unix / Linux en Foros del Web. Buenas tardes mi consulta es la siguiente tengo el soguiente shell @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código shell: Ver original fecha= date +'%d-%m-%y   nombre="Archivo_Creado_$fecha.txt"   echo nombre ...
  #1 (permalink)  
Antiguo 24/09/2012, 15:44
Avatar de valdo_kof  
Fecha de Ingreso: noviembre-2009
Ubicación: San Juan del Rio, Qro
Mensajes: 192
Antigüedad: 15 años
Puntos: 16
poner resultado de date en una variable

Buenas tardes mi consulta es la siguiente

tengo el soguiente shell

Código shell:
Ver original
  1. fecha= date +'%d-%m-%y
  2.  
  3. nombre="Archivo_Creado_$fecha.txt"
  4.  
  5. echo nombre

lo qe quiero hacer es que se haga una variable que diga Archivo_Creado_24-09-12.txt

para que con ayuda del cron este ejecute el shell diario y se genere un archivo con el nombre correspondiente al dia

al modificar el shell y dejarlo asi

Código shell:
Ver original
  1. fecha= date +'%d-%m-%y
  2. echo $fecha
  3. nombre="Archivo_Creado_$fecha.txt"
  4.  
  5. echo nombre


la salida me da asi

Código UNIX:
Ver original
  1. 24-09-12
  2.  
  3. Archivo_Creado_.txt

quiciera saber si alguien sabe como hacer que el resultado de la funcion date se quede como variable y poder ocuparla a mi voluntad
  #2 (permalink)  
Antiguo 24/09/2012, 17:14
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 22 años, 5 meses
Puntos: 35
Respuesta: poner resultado de date en una variable

En serio te devuelve eso? A mi me daba error... esto me funciona:

Código bash:
Ver original
  1. #!/bin/bash
  2. fecha=$(date '+%d-%m-%y')
  3. echo $fecha
  4. nombre="Archivo_Creado_$fecha.txt"
  5. echo $nombre
__________________
Sin Ideas
  #3 (permalink)  
Antiguo 25/09/2012, 06:46
Avatar de valdo_kof  
Fecha de Ingreso: noviembre-2009
Ubicación: San Juan del Rio, Qro
Mensajes: 192
Antigüedad: 15 años
Puntos: 16
Respuesta: poner resultado de date en una variable

perdon me falto una ' en fecha= date +'%d-%m-%Y' por eso te da el error

y gracias por contestar efectivamente con esa sintaxis si me funciono, muchas gracias
  #4 (permalink)  
Antiguo 26/09/2012, 07:46
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: poner resultado de date en una variable

Es porque no estás haciendo lo que querés hacer, y dudo que hayas entendido por qué no te funciona.

En BASH, KSH y otras,

Código bash:
Ver original
  1. VARIABLE= programa

indica que debe correrse el programa y que tendrá disponible una variable de entorno $VARIABLE, en este caso vacía. Esto no es lo que se busca en la mayoría de los casos, y por eso nunca debes escribir un espacio entre el signo de igual y lo que le sigue.

Esta funcionalidad es útil para cambiar temporalmente el comportamiento de algunos programas, fijate sino lo que hacen

LANG=en man bash

y

LANG=es man bash

Lo que tenía mal tu primer ejemplo era ese espacio extra, y la falta de una comilla invertida ` alrededor de la llamada a date (o la forma $(), como te indicó oso96_2000)


Saludos.
  #5 (permalink)  
Antiguo 26/09/2012, 08:54
Avatar de valdo_kof  
Fecha de Ingreso: noviembre-2009
Ubicación: San Juan del Rio, Qro
Mensajes: 192
Antigüedad: 15 años
Puntos: 16
Respuesta: poner resultado de date en una variable

Cita:
Iniciado por AlvaroG Ver Mensaje
Es porque no estás haciendo lo que querés hacer, y dudo que hayas entendido por qué no te funciona.

En BASH, KSH y otras,

Código bash:
Ver original
  1. VARIABLE= programa

indica que debe correrse el programa y que tendrá disponible una variable de entorno $VARIABLE, en este caso vacía. Esto no es lo que se busca en la mayoría de los casos, y por eso nunca debes escribir un espacio entre el signo de igual y lo que le sigue.

Esta funcionalidad es útil para cambiar temporalmente el comportamiento de algunos programas, fijate sino lo que hacen

LANG=en man bash

y

LANG=es man bash

Lo que tenía mal tu primer ejemplo era ese espacio extra, y la falta de una comilla invertida ` alrededor de la llamada a date (o la forma $(), como te indicó oso96_2000)


Saludos.

ok, mira no entiendi mucho lo que estaba haciendo, ya que soy nuevo, lo que me puso oso96_2000 fue esto

En serio te devuelve eso? A mi me daba error... esto me funciona:


y le marca el error xq como yo lo tengo es de esta forma y si me hace algo sin error, pero no me deja el resultado en la variable

y si efectivamente, no se xq se tiene que poner fecha=$(date '+%d-%m-%y')

soy muy nuevo en esto, quice hacer el intento para aprender, y te agradesco la explicacion, ahora si me queda claro lo que estuve investigando todos los ejemplos que encontre venian asi como lo puse pero me falto poner la ' para que hiciera lo mismo q a mi me hace

enserio muchas gracias por sus comentarios y su ayuda, la informacion es muy valiosa y en este momento soy muy ignorante sobre este tema, y me has sacado un poco de mi ignorancia, seguire viendo esto, ya que me llamo mucho la atencion se ve interesante

saludos
  #6 (permalink)  
Antiguo 26/09/2012, 11:50
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: poner resultado de date en una variable

Es simple: lo que necesitás es obtener la salida del programa "date" y guardarla en una variable. Para ejecutar un programa externo desde un script, se envuelve el programa en $() o en comillas invertidas `.

Si te sobra un espacio en el lugar equivocado, te encontrarás en la situación de describí. Si no colocas los caracteres debidos, y escribes

VARIABLE=date

lo único que lograrás es tener una variable cuyo contenido es "date".


Saludos.

Etiquetas: date, resultados, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:32.