dedito pisze:
Masz dwa zadania wykonywane oddzielone średnikiem.
W pierwszym do zmiennej TEMP trafia bieżąca temperatura : digitemp odpytuje sensor który zwraca jakieś kilka linijek tekstu, grep ogranicza wynik do linii zawierającej słowo sensor , awk ogranicza wynik do kolumny 7 na której jest wartość cyfrowa temperatury która to ostatecznie trafia do zmiennej TEMP.
W drugim sed w wierszu 14 pliku index.html podmienia zawartość znalezioną pomiędzy >*<, w przykładzie jest to 27.13.
Dziękuję za jasne wytłumaczenie polecenia!
dedito pisze:
Dziwi mnie jedynie ten wiersz 14 bo w pliku index.html temperatura jest we wcześniejszym wierszu (wg moich obliczeń w linii 12).
Analogicznie kolumna 7 też nie wygląda na prawidłowo dobraną (wg mnie powinna być 6).
W przypadku większej ilości czujników wyniki powinny trafiać do html jako ciąg w jednej linii np. 27.13 27.16 itd.
Też przeliczałem te linie i również mi się to nie zgadzało :-)
pawkrol pisze:A ja tylko dodam:
Takie coś wyrzuca temperaturę z czujnika nr 4. Lista wykrytych czujników w pliku digitemprc. Wyświetlana temperatura w stopniach C do dwóch miejsc po przecinku. Tu omijamy stosowanie grepa i awk.
Kod: Zaznacz cały
digitemp_DS9097U -c /root/.digitemprc -t 4 -q -o%.2C
Myślałem żeby napisać skrypt i dodać jego wykonywanie do cron-a w którym by było (np. dla czterech czujników a nie 4-tego czujnika):
Kod: Zaznacz cały
digitemp_DS9097U -t 0 -q -o "%Y-%m-%d %H:%M:%S %.2C" | grep -v Found; sed -i -r "znaczniki_seda" /www/temp.html
digitemp_DS9097U -t 1 -q -o "%Y-%m-%d %H:%M:%S %.2C" | grep -v Found ...........................
digitemp_DS9097U -t 2 -q -o "%Y-%m-%d %H:%M:%S %.2C" | grep -v Found ...........................
digitemp_DS9097U -t 3 -q -o "%Y-%m-%d %H:%M:%S %.2C" | grep -v Found ...........................
Tylko nie znam na tyle dobrze sed-a żeby np odwoływać się w nim do pola ID w kodzie html który miałby wyglądać następująco:
Kod: Zaznacz cały
<html>
<head>
<title>Temperature</title>
</head>
<body bgcolor="#222222">
<table align="center" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td style="text-align: center; "><span style="color:#696969;"><span style="font-size: 90px; "><strong><span style="font-family: verdana, geneva, sans-serif; ">Pokój 1</span></strong></span></span></td>
</tr>
<tr>
<td style="text-align: center; "><span style="color:#66cc00;"><span style="font-size:300px;"><span style="font-family: verdana, geneva, sans-serif; "><div id="czujnik1">27.13</div></span></span></td>
<td style="text-align: center; "><span style="color:#696969;"><span style="font-size: 90px; "><strong><span style="font-family: verdana, geneva, sans-serif; ">Pokój 2</span></strong></span></span></td>
</tr>
<tr>
<td style="text-align: center; "><span style="color:#66cc00;"><span style="font-size:300px;"><span style="font-family: verdana, geneva, sans-serif; "><div id="czujnik2">27.13</div></span></span></td>
...................................................... itd ....................................................
</tr>
</tbody>
</table>
<p>
</p>
</body>
</html>
czyli odniesienie do:
Kod: Zaznacz cały
<div id="czujnik1">27.13</div>
...
<div id="czujnik2">21.12</div>
macie pomysł jak to zapisać w sed-zie, bo przedstawione powyżej liczenie linii jest wg mnie trochę nietrafione jeśli w przyszłości będziemy dodawać jakieś "upiększacze" - nowe linie kodu html (jest to do wykonania/zapisania przez sed-a)?