zsh

2012-09-07 15 views
5

के साथ दिनांक कमांड %d.%m.%y-%H:%M:%S प्रारूप में आज की तारीख को आउटपुट करने के लिए date कमांड का उपयोग करने का प्रयास कर रहा हूं। जाहिर है मैं बस है कि इस तरह:zsh

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

यह बैश में ठीक काम करता है और मैं उत्पादन रहा था पाने की उम्मीद, लेकिन जब मैं zsh में यह कर मैं क्या मैं '7m' उपसर्ग में उम्मीद थी मिलता है, उदाहरण के लिए

7m07.09.12-16: 49: 37

बजाय

07.09.12-16: 49: 37

मुझे अपने टर्मिनल से भी एक चेतावनी मिलती है। यह सेकंड के लिए %S के कारण होता है, क्योंकि जब मैं इसे कमांड के अंत से बाहर ले जाता हूं तो मुझे '7 मीटर' नहीं मिलता है (लेकिन जाहिर है कि मुझे तारीख के अंत से सेकंड गुम हो रहा है)।

क्या कोई यह समझा सकता है कि ऐसा क्यों होता है?

संपादित करें: अतिरिक्त जानकारी: मैं OS X 10.8 पर और zsh 4.3.11 साथ हूँ, ओह-मेरी-zsh स्थापित

+3

बिल्कुल पूरा जवाब नहीं है, क्योंकि मुझे 'zsh' अच्छी तरह से पता नहीं है। लगता है कि "% S" का मूल्यांकन 'zsh' द्वारा किया जाता है जैसा कि इसे 'दिनांक'' से पहले पारित किया जाता है। सरल एकल- और डबल-उद्धरण इसे रोकता नहीं है, लेकिन थोड़ा मुश्किल 'दिनांक' +% d।% M।% Y-% एच:% एच% 'एस' करता है। (ध्यान दें कि मैंने एस को उद्धरण के बाहर रखा है।) – chepner

+0

आह आप सही हैं! मैंने इसे केवल संक्षेप में देखा है, लेकिन मुझे लगता है कि इस पर कुछ जानकारी है [यहां] (http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html) – stonesam92

+1

इसके लायक होने के लिए, मैं zsh का उपयोग कर रहा हूं 4.3.11 लिनक्स मिंट पर और वह आदेश मेरे लिए ठीक काम करता था। – Scooter

उत्तर

2

एक वर्कअराउंड कोड को echo $(...) के आसपास लपेटना है। यह सही उत्पादन पैदा करता है और मेरे लिए स्वीकार्य था। आपका मूल आदेश इस तरह दिखेगा:

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