我有一些 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_$(日期)