Shell命令日期

Shell命令日期

问题描述:

我想在shell脚本中以mm-dd-yy格式打印日期。从shell终端我可以使用下面的命令吧:Shell命令日期

date +"%d-%m-%y" 

但我想它在shell脚本并在随后可以附加到文件名的变量。我试过如下:

#!/bin/sh 
mydate=`"date +\"%m-%d-%Y\""' 
echo "$mydate" 

但它给了一个错误date +"%d-%m-%y" is not found. 有人能指出我在做什么错误?

你不需要引号

mydate=`date +%m-%d-%Y` 

会工作。

+0

+1一般来说,建议'$(date +%m-%d-%Y)'而不是backquotes。 – chepner 2014-09-30 17:52:22

使用

mydate=$(date "+%m-%d-%Y") 

看到这是为了存储在变量命令道:var=$(command)。要使用date,您需要在双引号内定义类似date "+%format%place%holders"的格式,其中+

$ mydate=$(date "+%m-%d-%Y") 
$ echo $mydate 
09-29-2014 

注意,优选使用过$()``,因为它允许嵌套多个命令。

+0

我在使用时出现错误 mydate = $(日期) – CrazyC 2014-09-29 09:38:05

+0

您会得到什么错误,@CrazyC?它应该工作。 – fedorqui 2014-09-29 18:59:56

+0

在我的系统上 $ mydate = $(date) 这样的语句不起作用。 – CrazyC 2014-09-30 06:19:08

#!/bin/sh 
mydate=`date +\"%m-%d-%Y\"` 
mydate1=`date +%m-%d-%Y` 
echo "$mydate" 
echo "$mydate1" 

这两种方法都行得通。但是第一个日期值将被双引号包围,如“09-29-2014”。

您有关于如何正确执行此操作的建议。究其原因,错误是内双引号的第一个层次,使带参数的整个命令为一个字:

mydate=`"date +\"%m-%d-%Y\""' 

您试图执行一个名为命令:

d一个吨Ë +%米-d-ý

和清楚没有这样的指令存在。

+0

好解释和视觉艺术! – fedorqui 2014-09-29 13:19:11