2012-09-07 29 views
5

Tôi đang cố sử dụng lệnh date để xuất ngày hôm nay theo định dạng %d.%m.%y-%H:%M:%S. Rõ ràng là tôi chỉ làm điều đó như thế này:Lệnh ngày với zsh

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

này hoạt động tốt trong bash và tôi nhận được đầu ra tôi mong đợi, nhưng khi tôi làm điều này trong zsh tôi nhận được những gì tôi mong đợi bắt đầu bằng '7m, ví dụ

7m07.09.12-16: 49: 37

thay vì

07.09.12-16: 49: 37

Tôi cũng nhận được cảnh báo từ thiết bị đầu cuối của mình. Điều này được gây ra bởi %S trong vài giây, bởi vì khi tôi thực hiện điều đó ở cuối lệnh, tôi không nhận được '7m' (nhưng rõ ràng là tôi thiếu các giây sau khi kết thúc ngày).

Có ai giải thích tại sao điều này xảy ra không?

EDIT: Thông tin thêm: Tôi đang trên OS X 10.8 và với zsh 4.3.11, oh-my-zsh cài đặt

+3

Không hoàn toàn là câu trả lời đầy đủ vì tôi không biết 'zsh'. "% S" có vẻ được đánh giá bởi 'zsh' như một cái gì đó trước khi nó được chuyển đến' ngày'. Đơn giản và đôi trích dẫn không ngăn chặn nó, nhưng hơi khó hiểu 'ngày '+% d.% M.% Y-% H:% H%' S'. (Lưu ý tôi đặt S bên ngoài dấu ngoặc kép.) – chepner

+0

Ah bạn đã đúng! Tôi đã chỉ xem xét nó một thời gian ngắn nhưng tôi nghĩ rằng có một số thông tin về nó [ở đây] (http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html) – stonesam92

+1

Đối với những gì nó có giá trị, tôi đang sử dụng zsh 4.3.11 trên Linux Mint và lệnh đó làm việc OK cho tôi. – Scooter

Trả lời

2

Một giải pháp khác là quấn mã xung quanh echo $(...). Nó tạo ra sản lượng phù hợp và được chấp nhận đối với tôi. Lệnh ban đầu của bạn sẽ trông giống như:

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