Forum Linux.pl

Programowanie => Bash, skrypty powłoki => Wątek zaczęty przez: Łukasz_ w 2010-04-21, 19:46:30

Tytuł: Skrypt do wykrywania czujnikow DS18*20
Wiadomość wysłana przez: Łukasz_ w 2010-04-21, 19:46:30
Witam wszystkich, którzy to przeczytają;-)

Jak zaczynalem swoj skrypt, to myslalem ze nie jestem taki tepy, ale chyba sie przeliczylem.
Zaopatrzylem sie w luterature, manuale, linki z gotowymi skryptami, ale po tygodniu dumania wymieklem na pierwszej linijce kodu.
Moj problem jest bardziej natury filozoficznej niz technicznej, bo metoda prob i bledow skonstruowalem... Cos... Ale to Cos dziala. Nie wiem tylko jak to polaczyc w calosc.
Moj problem polega na tym, ze nie kumam jak mysli komputer...
Nie umiem sobie po kolei wyobrazic krokow, ktore musi realizowac skrypt. W skryptach, ktore analizowalem rzeczy ktore moim zdaniem powinny byc na poczatku, byly na koncu skryptu. Zaden manual, ktore przegladalem nie wyjasnil mi tej filozofii basha.
Wiec po kolei.
Moj skrypt ma robic cos takiego:

1. Uruchomienie digitempa, aby znalezc pierwszy czujnik i zapisanie wyniku do listy czujnikow - roms:
digitemp_DS9097 -i -a -s /dev/ttyS0 | grep ROM >> sensors && cut -d " " -f 4 ./sensors >> roms

2. Przydzielenie nazwy "dla ludzi" dla konkretnego romu:
Tutaj nawet nie mam pomyslu na realizacje, bo najpierw musze nauczyc sie sortowac liste wg. numerow romow. Nastepny krok to zapisanie posortowanej listy w dwoch kolumnach ROM i NAZWA w pliku "list" z ktorej bedzie korzystala druga czesc programu, ale z tym sobie poradze.

3. Powtarzanie powyzszych czynnosci przy kazdym z kolejnych czujnikow,
czyli znalezienie nowo podpietego czujnika przez porownanie dwoch plikow a nastepnie uaktualnienie listy roms, aby kolejne wywolanie porownywalo juz z nowa lista:
digitemp_DS9097 -i -a -s /dev/ttyS0 | grep ROM >> sensors.new && cut -d " " -f 4 ./sensors.new >> roms.new && grep -v -f ./sensors ./sensors.new >> list && mv ./roms.new ./roms

Taki sobie wymyslilem algorytm postepowania. Moze to nie jest za madre, ale inaczej nie umiem. Moj problem tkwi w tym, ze kazdy krok z osobna umiem zrealizowac, ale nie umiem zrobic z tego dzialajacego skryptu, np. z uzyciem dialoga. Nie wiem w ktorym momencie wywolac petle i jak przekazac dane do kolejnego kroku...

Jesli znalazlby sie ktos chetny do pomocy, to bylbym bardzo wdzieczny. A moze ktos napisal podobny skrypt do wykrywania czegos inngo i mozna go latwo przystosowac...