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`
会工作。
答
使用
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-%ý”
和清楚没有这样的指令存在。
+0
好解释和视觉艺术! – fedorqui 2014-09-29 13:19:11
+1一般来说,建议'$(date +%m-%d-%Y)'而不是backquotes。 – chepner 2014-09-30 17:52:22