2012-02-02 79 views
26

基本上我想让终端输出一个消息,后跟日期和时间,如“你好,今天是-dateandtime-”。如何将UNIX命令日期添加到回显语句中

所以回声可以完成第一个位,日期可以完成最后一个,但只有分开,我怎么能把它们放在一起(在一个命令),所以他们一起输出。

回声你好

- 新的命令 -

日期

它,而不是在一条线。流水线的答案?

回答

50

这将做到这一点:

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

非常感谢。 :D – 2012-02-02 00:21:05

+0

+1仅仅是因为你使用了$()而不是反引号(但是mimisbrunnr的解决方案是IMO更加正确) – 2012-02-02 02:29:28

3
echo Hello there, today is `date` 

您也可以使用修饰符像格式化日期输出:

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

的修饰符的完整列表,请参阅man date

+0

工程就像一个魅力,谢谢。 – 2012-02-02 00:21:59

8

日期时间将采用任意格式的字符串。

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

你的命令不会产生你所显示的内容,但类似于:'你好,今天是 - Thu Feb 2 03:28:CET 2012' – jlliagre 2012-02-02 02:27:56

+0

是的,我编辑了格式化字符串,忘记修补输出 – zellio 2012-02-02 05:47:21

0

反引号会做的伎俩:

echo "Hi, today is" `date` 
1

对于这个特定的问题,密米尔之泉的解决方案是正确的道路要走。对于如何将数据附加到回波中的一般问题,一些常用技术是:

 
$ 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