2012-09-07 10 views
5

Sto tentando di utilizzare il comando date per stampare la data odierna nel formato %d.%m.%y-%H:%M:%S. Ovviamente Io faccio solo che in questo modo:Data comando con zsh

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

Questo funziona bene in bash e ottengo l'output che ci si aspetterebbe, ma quando faccio questo in zsh ottengo ciò che mi aspettavo preceduto da '7m', per esempio

7m07.09.12-16: 49: 37

anziché

07.09.12-16: 49: 37

Ho anche ricevuto un avviso dal mio terminale. Questo è causato dallo %S per secondi, perché quando lo togli dalla fine del comando non ottengo i '7m' (ma ovviamente mi mancano i secondi dalla fine della data).

Qualcuno può spiegare perché questo accade?

EDIT: Informazioni supplementari: Sono su OS X 10.8 e con zsh 4.3.11, oh-my-zsh installato

+3

Non proprio una risposta completa, poiché non conosco bene "zsh". "% S" sembra essere valutato da 'zsh' come qualcosa prima che venga passato a' date'. Le virgolette semplici a virgola singola e doppia non lo impediscono, ma la "data" leggermente più delicata +% d.% M.% Y-% H:% H% 'S'. (Nota che ho messo la S fuori dalle virgolette.) – chepner

+0

Ah hai ragione! L'ho solo guardato brevemente ma penso che ci siano alcune informazioni su di esso [qui] (http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html) – stonesam92

+1

Per quello che vale, sto usando zsh 4.3.11 su Linux Mint e quel comando ha funzionato bene per me. – Scooter

risposta

2

Una soluzione è di avvolgere il codice intorno a echo $(...). Produce la giusta uscita ed era accettabile per me. Il tuo comando originale sarà simile a:

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