Скрипт для регистрации температуры

Тем же путем Вы были бы время любая другая команда оболочки: используйте time команда.

$ time pg_restore ...
real    1m0.000s
user    1m0.000s
sys     0m0.000s

Здесь, real прошедшая стена, показывают время, которое является, вероятно, единственным значимым значением, так как большая часть работы делается в отдельном процессе (сервер PostgreSQL).

3
13.04.2017, 15:56
4 ответа

Вместо того, чтобы построить строку и присоединение к нему, просто создайте строку напрямую:

➜  ~  DATE="1234"
➜  ~  TEMP="15"
➜  ~  STR="$DATE;$TEMP"
➜  ~  echo $STR
1234;15
0
27.01.2020, 21:16

Первая проблема в том, что у вас есть пробел после =:

TEMP= grep -o [1-9][0-9]\.[0-9] /tmp/temp.txt

Это неправильно и нарушает ваш скрипт. Следующая проблема заключается в том, что Вы присваиваете сами команды, как строки, переменным, а не их вывод:

$ foo=date
$ echo $foo
date

Для выполнения команды и сохранения ее вывода в переменную, Вам необходимо использовать $(command) или `command`:

$ foo=$(date)
$ echo $foo
Mon May 25 19:09:11 EEST 2015

У Вас также есть различные другие биты и куски, которые могут быть улучшены. Попробуйте вместо этого:

#!/usr/bin/env bash
vcgencmd measure_temp > /tmp/temp.txt
## Avoid using UPPER CASE variable names since they
## can conflict with environmental variables. 
temp=$(grep -o "[1-9][0-9]\.[0-9]" /tmp/temp.txt)
date=$(date +"%Y-%m-%d %H:%M")
## No need for another variable
printf "%s;%s\n" "$date" "$temp" >> /home/pi/temp_hist.csv
3
27.01.2020, 21:16

Предполагая, что vcgencmd measure_temp создаст единственное число с фиксированной точкой, эта команда может делать то, что вы хотите:

temp=$( vcgencmd measure_temp | grep -o '[0-9]*\.[0-9]' )
date "+%Y-%m-%d %H:%M;${temp}" >> /home/pi/temp_hist.csv
2
27.01.2020, 21:16

Я отчасти к ответу Яниса. Тем не менее, вы можете найти Rrdtool лучший вариант для такого рода вещи. Он записывает его значения в предварительно определенных временных интервалах (или NV, если пропустить временное интервал). Затем он может использоваться для создания некоторых очень хороших графов или выводить данные в XML или TSV. Вот стартер-учебник: http://oss.oetiker.ch/rrdtool/tut/rrd-beginners.en.html

0
27.01.2020, 21:16

Теги

Похожие вопросы