如何从脚本自动生成以当前日期为文件名的文件?

如何从脚本自动生成以当前日期为文件名的文件?

我有一些 shell 脚本,可以生成一些输出。输出被写入一个文件。在我的 cronjob 中,我有:./myscript.sh --options > output 因为 cronjob 每周运行一次,所以我想保留一个输出列表,而不是每次脚本运行时都覆盖它们。所以理想情况下,我希望将输出文件名命名为 output_日期。日期是当前脚本运行日期。在 Unix 中,date 命令可以为您提供当前日期信息,但我如何将其集成到输出文件名中?

更新:

尝试过 Heath 和 wfaulk 的方法,效果确实不错。但是,当我在 cronjob 中输入相同的命令时,我开始收到错误:/bin/sh:-c:第 0 行:在查找匹配的 `)' 时出现意外的 EOF /bin/sh:-c:第 1 行:语法错误:文件意外结束

我知道这是由于输出到名为 output_$(date +%Y%m%d) 的文件导致的,因为这是我所做的唯一更改。在 cronjob 中还有其他方法吗?

答案1

myscript.sh > output_$(date +%Y%m%d)

答案2

date 命令按照你的要求执行,但是日志旋转是为了您要做的事情而准备的,并且会让事情保持整洁...在我看来,这是值得学习的。

答案3

./myscript.sh --options > output_$(date)

但您可能希望使用不同的日期格式,以便其中不包含空格和垃圾。例如:

./myscript.sh --options > output_$(date +%Y%m%d.%H%M%S)

如果您的 shell 不支持 $() 语法,请将$(及其匹配项替换)为“ `”(反引号)。

答案4

./myscript.sh --options > output_$(日期)

相关内容