如何将上个月的日期(仅年份和月份 - 2016-07)分配为变量?

如何将上个月的日期(仅年份和月份 - 2016-07)分配为变量?

我在 bash 脚本中使用日期作为变量时遇到问题。我承认我在 bash 或其他语言中编写任何东西的经验为零,但我的任务是解决这个问题。我在这里看到了一些与我正在寻找的内容接近的其他帖子,但我还没有弄清楚。

我需要将数百个日志文件从一个目录移动到一个以上个月的年和月(数字)命名的存档目录,例如2016-07.我希望脚本查看存档目录以查看上个月的目录是否存在,如果不存在,则创建它,然后将日志移入其中。我使用的是 RHEL 5.11。

从命令提示符这给了我我需要的东西:

date +%Y-%m –d “last month”

返回:2016-07

我只是无法让它作为变量工作。我尝试了以下方法(除其他外):

last_month=date +%Y-%m -d "last month"
last month=(date +%Y-%m -d "last month")

答案1

神奇的词是“命令替换”。从男人狂欢

命令替换允许命令的输出替换命令名称。

$ d=$(date +%Y-%m -d "last month")
$ echo $d
2016-07

答案2

尝试这个命令:

$ last_month=`date +%Y-%m -d "last month"`
$ echo $last_month

相关内容