我有一些生成一些输出的shell脚本。 输出写入文件。 在我的cronjob我有:./myscript.sh –options>输出因为cronjob每周运行,我想保留一个输出列表,而不是每次脚本运行覆盖它们。 所以理想情况下,我想输出文件的名称为output_ date 。 date是当前脚本运行date。 在Unix中,date命令可以给你当前的date信息,但是我怎样才能把它集成到输出文件名?
更新:
已经尝试了希思和wfaulk的方法,它工作得很好。 但是,当我把相同的命令放在cronjob中时,我开始得到错误:/ bin / sh:-c:line 0:unexpected EOF while looking for match')'/ bin / sh:-c:line 1:syntax错误:意外的文件结束
我知道这是由输出到一个名为输出_ $(date+%Y%m%d)的文件,因为这是我做的唯一的更改。 在cronjob中有没有不同的方法呢?
myscript.sh > output_$(date +%Y%m%d)
date命令做你所要求的,但是logrotate是为你正在做的事情而准备的,并且会把事情清理干净。这是值得我学习的。
./myscript.sh --options > output_$(date)
但你可能想要使用不同的date格式,以便它没有空格和垃圾。 就像是:
./myscript.sh --options > output_$(date +%Y%m%d.%H%M%S)
如果您的shell不支持$()语法,请将$(及其匹配项)replace为“ ` ”(反引号)。
./myscript.sh –options> output _ $(date)