2014-09-29 107 views
1

我想在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. 有人能指出我在做什麼錯誤?

回答

3

你不需要引號

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

會工作。

+0

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

2

使用

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

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

這兩種方法都行得通。但是第一個日期值將被雙引號包圍,如「09-29-2014」。

2

您有關於如何正確執行此操作的建議。究其原因,錯誤是內雙引號的第一個層次,使帶參數的整個命令爲一個字:

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

您試圖執行一個名爲命令:

d一個噸Ë +%米-d-ý

和清楚沒有這樣的指令存在。

+0

好解釋和視覺藝術! – fedorqui 2014-09-29 13:19:11