如何在echo中传递较旧的日期?

时间:2017-06-05 06:24:11

标签: linux unix echo

我使用以下脚本将动态日期回显到文件中;

purgedate=$(date +"$%m/%d/%Y %r" --date='6 month ago')

echo "6 months ago was" \"$purgedate\" > myFile.txt

我得到的输出是:

6 months ago was "$12/05/2016 12:20:11 AM"

如果没有" $"我怎么回声?在日期之前签字? 我想要以下输出,没有" $"在约会之前。

6 months ago was "12/05/2016 12:20:11 AM"

2 个答案:

答案 0 :(得分:1)

您的输出中有一个美元符号,因为您的日期格式中包含一个美元符号。

purgedate=$(date +"$%m/%d/%Y %r" --date='6 month ago')
                   ^

删除它,它将不再存在。 : - )

我应该指出,您使用的日期格式已经过时且不精确。对于任何新的开发,你应该考虑自1988年以来一直存在的ISO 8601,它是表示日期的标准方式。

它甚至可能为你提供缩短事物的机会;在大多数环境中,'+%Y-%m-%d'可以替换为'+%F'

答案 1 :(得分:0)

您不小心在字符串中添加了“$”:“ $ %m /%d /%Y%r”。

通过删除它,它可以工作:

purgedate=$(date +"%m/%d/%Y %r" --date='6 month ago')
echo "6 months ago was" \"$purgedate\" > myFile.txt