我在我的macOS上安装了ansiweather,我想用cronjob每天记录几次天气。
这是我的代码:
date +%Y-%m-%d--%H:%M && ansiweather -l Amsterdam,NL -s true -h false -p false >> test.txt
当我查看我的test.txt
文件时,我只看到ansiweather结果,而不是日期。
我想有一个日志文件,显示每行的日期[空格] [ansiweather详细信息]。
知道怎么做吗?
让我们用伪命令替换你的命令:
$ echo 1 && echo 2 >> out.txt
1
这会将第一个命令的输出打印到标准输出,第二个命令的输出重定向到out.txt
。
要让它们都重定向,请将它们分组:
{ echo 1 && echo 2; } >> out.txt
但这只是解决方案的一半; out.txt
将包含
1
2
分开的。
要在单行上获得输出,可以使用printf
:
printf '%s %s\n' "$(echo 1)" "$(echo 2)" >> out.txt
导致含有out.txt
1 2
适用于您的实际命令:
printf '%s %s\n' \
"$(date '+%F--%R')" \
"$(ansiweather -l Amsterdam,NL -s true -h false -p false)" >> test.txt
请注意,+%Y-%m-%d--%H:%M
可以缩写为'%F--%R'
(至少使用GNU date
和股票macOS date
; POSIX不需要%F
或%R
)。