Bash – 如何输出两个命令文件?

我想输出两个命令到一个文件。 我想要每5分钟logging一次确切的时间(date)和温度(传感器)。 我知道如何输出一个命令到一个文件,但两个? 如何编写这样的脚本

像这样的东西? (在循环中,cron,或者你正在使用的任何东西)

(date; my_sensor_command) >> log_file 

将所有命令分组在括号中,因为这将在一个子shell中执行,您可以轻松地redirect输出:

  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 

如果我理解你的问题 – 你想输出两个值到同一个文件 – 那么这可能是你在找什么:

 TIME="`date`" SENSOR="56" echo "$TIME $SENSOR" >> /path/to/a/file 

也许我误解了这个问题,但看起来所有的答案都附加到一个文件中。 我读你的问题是你想要在2个文件中相同的输出。 如果那是你正在寻找的东西,tee是一种实现的方法:

回声“输出的东西”| tee -a file1 file2

参考hlovdal文章,你可以设置一个这样的cron:

 $ crontab -e 

$ 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