2012-09-07 12 views
5

Estoy tratando de usar el comando date para dar salida a la fecha de hoy en el formato %d.%m.%y-%H:%M:%S. Obviamente, yo sólo hago que de esta manera:Comando de fecha con zsh

date +%d.%m.%y-%H:%M:%S 

Esto funciona bien en bash y me da la salida que cabe esperar, pero cuando hago esto en zsh que consiga lo que cabría esperar con el prefijo '7m', por ejemplo

7m07.09.12-16: 49: 37

en lugar de

07.09.12-16: 49: 37

También recibo una alerta de mi terminal. Esto es causado por el %S por segundos, porque cuando lo quito del final del comando no obtengo el '7m' (pero obviamente me faltan los segundos del final de la fecha).

¿Alguien puede explicar por qué sucede esto?

EDIT: Información adicional: Estoy en OS X 10.8 y con zsh 4.3.11, oh-my-zsh instalado

+3

No es una respuesta completa, ya que no sé 'zsh' bien. El "% S" parece ser evaluado por 'zsh' como algo antes de pasarse a' date'. Las simples comillas simples y dobles no lo previenen, pero la "fecha" ligeramente complicada +% d.% M.% Y-% H:% H% "S" lo hace. (Nota: pongo el S fuera de las comillas). – chepner

+0

¡Ah, tienes razón! Solo lo he visto brevemente, pero creo que hay algo de información aquí [aquí] (http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html) – stonesam92

+1

Por lo que vale, estoy usando zsh 4.3.11 en Linux Mint y ese comando funcionó bien para mí. – Scooter

Respuesta

2

Una solución consiste en ajustar el código en echo $(...). Produce el resultado correcto y fue aceptable para mí. Su comando original se vería así:

echo $(date +%d.%m.%y-%H:%M:%S) 
Cuestiones relacionadas