我想在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.
有人能指出我在做什麼錯誤?
我想在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`
會工作。
使用
mydate=$(date "+%m-%d-%Y")
看到這是爲了存儲在變量命令道:var=$(command)
。要使用date
,您需要在雙引號內定義類似date "+%format%place%holders"
的格式,其中+
。
$ mydate=$(date "+%m-%d-%Y")
$ echo $mydate
09-29-2014
注意,優選使用過$()
``,因爲它允許嵌套多個命令。
#!/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-%ý」
和清楚沒有這樣的指令存在。
好解釋和視覺藝術! – fedorqui 2014-09-29 13:19:11
+1一般來說,建議'$(date +%m-%d-%Y)'而不是backquotes。 – chepner 2014-09-30 17:52:22