Bash - 如何将两个命令输出到文件?

Bash - 如何将两个命令输出到文件?

我想将两个命令输出到一个文件。我希望每 5 分钟将准确的时间(日期)和温度(传感器)输出到文件中。我知道如何将一个命令输出到一个文件,但两个呢?如何编写这样的脚本?

答案1

像这样吗?(在循环、cron 或任何您当前正在使用的方法中。)

(date; my_sensor_command) >> log_file

答案2

将所有命令分组在括号中,因为这样将在子 shell 中执行它们,您可以轻松地从该子 shell 重定向输出:

 while sleep 5m
 do
         (date +%Y-%m-%d_%H:%M | tr -d '\012'; echo -n ' '; \
         /etc/rc.d/init.d/lm_sensors status | grep '^CPU Temp') >> /your/log/file

 done

答案3

如果我理解你的问题正确 - 你想要将两个值输出到同一个文件 - 那么这可能就是你正在寻找的:

TIME="`date`"
SENSOR="56"

echo "$TIME $SENSOR" >> /path/to/a/file

答案4

参考 hlovdal 的帖子,您可以像这样设置 cron:


$ crontab -e

*/5 * * * * (echo date +%Y%m%d%H%M%S | tr -d '\012'; echo -n ' '; sensors | grep "CPU Temp:" | awk '{ print $3 }' )>> /var/log/sensors.log

相关内容