我尝试过执行类似 date=date 的操作,然后将我的文件命名为 $date.txt,但输出是 date.txt。
有趣的是,我请求 Copilot 帮忙,但我不明白它的建议并且不确定如何解决它:
定时任务
# run the main script and outputs to a different file every day
20 12 * * * python3 export/main.py > export/logs/$(date +\%Y-\%m-\%d).log 2>&1
哦,顺便说一下,我希望它能与 Fish shell 一起工作,或者了解如何将命令从 fish 转发到 bash。
答案1
我不知道 Fish 或你的副驾驶的建议,但为了保存输出命令变成多变的在 bash 中语法是:
variable_name="$(command)"
因此要保存输出date
到变量日期你应该做这个:
date="$(date)"
虽然date
命令的默认输出包含空格,但我建议您使用类似的东西$(date +\%Y-\%m-\%d)
,而不是仅仅$(date)
答案2
尝试
export/logs/$(date --iso-8601 | tr --delete -).log
今天(4 月 23 日)的收益
export/logs/20230423.log
我发现这种日期格式很方便,因为非常简洁并且可以排序:例如
/empty/export/logs$ ls -l
-rw-rw-r-- 1 zzzz users 0 Apr 23 07:23 20220423.log
-rw-rw-r-- 1 zzzz users 0 Apr 23 07:23 20230423.log
-rw-rw-r-- 1 zzzz users 0 Apr 23 07:24 20230513.log
-rw-rw-r-- 1 zzzz users 0 Apr 23 07:24 20230523.log
-rw-rw-r-- 1 zzzz users 0 Apr 23 07:24 20240423.log
/empty/export/logs$ ls -lr
-rw-rw-r-- 1 zzzz users 0 Apr 23 07:24 20240423.log
-rw-rw-r-- 1 zzzz users 0 Apr 23 07:24 20230523.log
-rw-rw-r-- 1 zzzz users 0 Apr 23 07:24 20230513.log
-rw-rw-r-- 1 zzzz users 0 Apr 23 07:23 20230423.log
-rw-rw-r-- 1 zzzz users 0 Apr 23 07:23 20220423.log