2012-02-02 3 views
26

Về cơ bản, tôi muốn có thông báo đầu ra của đầu cuối theo sau là ngày và giờ, như "Chào, hôm nay là -dateandtime-". Vì vậy, echo có thể thực hiện bit đầu tiên, và ngày tháng có thể thực hiện lần cuối, nhưng chỉ riêng biệt, làm thế nào tôi có thể đặt chúng lại với nhau (trong một lệnh) để chúng kết xuất với nhau.Làm cách nào để nối thêm ngày lệnh UNIX vào câu lệnh echo

Giống như

echo hello có

-new Command-

ngày

Liệu nó, nhưng không phải trong một dòng. Là pipelining câu trả lời?

Trả lời

50

này sẽ làm điều đó:

echo "Hi, today is $(date)" 
+0

Cảm ơn bạn rất nhiều. : D –

+0

+1 chỉ trên nguyên tắc tuyệt đối bởi vì bạn đã sử dụng $() thay vì backticks (nhưng giải pháp của mimisbrunnr là IMO chính xác hơn) –

3
echo Hello there, today is `date` 

Bạn cũng có thể định dạng đầu ra của ngày bằng bộ sửa đổi như sau:

echo Hello there, today is `date +%D` 

Xem man date cho một danh sách đầy đủ của từ bổ nghĩa.

+0

Hoạt động như một sự quyến rũ, cảm ơn. –

8

Thời gian ngày sẽ theo chuỗi định dạng tùy ý.

> date +"Hi, today is - %a %b %e %H:%M:$S %Z %Y" 
    Hi, today is - Thu Feb 2 03:28: CET 2012 
+0

Lệnh của bạn sẽ không tạo ra những gì bạn hiển thị nhưng giống như: 'Chào, hôm nay là - Thu Feb 2 03:28: CET 2012' – jlliagre

+0

vâng vâng, tôi đã chỉnh sửa chuỗi định dạng, quên vá đầu ra – zellio

0

backtick sẽ làm các trick:

echo "Hi, today is" `date` 
1

Đối với vấn đề này cụ thể, giải pháp mimisbrunnr là đúng cách để đi. Đối với câu hỏi chung về cách nối dữ liệu vào tiếng vang, một số kỹ thuật phổ biến là:

 
$ echo 'Hi, today is ' | tr -d '\012'; date 
Hi, today is Wed Feb 1 18:11:40 MST 2012 
$ echo -n 'Hi, today is '; date 
Hi, today is Wed Feb 1 18:11:43 MST 2012 
$ printf 'Hi, today is '; date 
Hi, today is Wed Feb 1 18:11:48 MST 2012