Shell命令日期

时间:2014-09-29 09:30:26

标签: shell date unix sh

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

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

但是我想在shell脚本和变量中将它附加到文件名中。我尝试了以下方法:

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

但它发出错误date +"%d-%m-%y" is not found. 任何人都可以指出我犯了什么错误吗?

4 个答案:

答案 0 :(得分:3)

您不需要引号

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

会奏效。

答案 1 :(得分:2)

使用

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

这是一种在变量中存储命令的方法:var=$(command)。要使用date,您可以在双引号内定义date "+%format%place%holders"+等格式。

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

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

答案 2 :(得分:2)

您有关于如何正确执行此操作的建议。出错的原因是内部双引号的第一级使得带有参数的整个命令成为一个单词:

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

您正在尝试执行名为:

的命令
  

d 电子 + - d - Y

显然没有这样的命令。

答案 3 :(得分:0)

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

这两种方法都有效。但是第一个将使用双引号括起日期值,例如" 09-29-2014"。