Nem egy dologról beszélünk. Én az eredeti feladat megoldásáról, te pedig az elképzelésed szerinti megoldásról. Az általad leírtakból arra következtettem, hogy
- van egy fájl amiben időpontok vannak
- be van állítva a gép, hogy az első időpontban automatikusan induljon el
- az elindulás után hajtson végre valamilyen feladatot
- a feladat végrehajtása után beállítja a következő ébredési időpontot
- lekapcsol a gép
Az általad leírtak alapján nekiláttál a feladat megoldásának, és abban akadtál el. Erre adtam egy másik megoldási javaslatot, mert szerintem az a lényeg, hogy az eredeti feladatot megoldjuk. Úgy gondolom, hogy a megoldás egyszerűbb, ha az „algoritmusodat” kicsit módosítjuk. (Legtöbbször egy feladat nagyon sok algoritmussal megoldható.) Arra alapoztam, hogy a kikapcsolás előtt mindenképpen meg kell keresni a fájlban a következő időpontot (a következő ébredés beállításához), így ekkor meg lehet csinálni egyúttal az ellenőrzést is. Ezért gondolom úgy, hogy ez egyszerűbb is.
Másrészt vegyünk egy példát: be kell kapcsolni 08.00-kor, és 09.00-kor is ez ugye elég távol esik egymástól. Ha a végrehajtandó feladat 58 percig tart (rémlik valamilyen TV-kártyás projekted is), akkor a kikapcsolás és a bekapcsolás között csak 2 perc lesz, ami viszont nem elég a ki- és bekapcsolásra. Az eredeti elképzelés szerint a leállítási időpont nincs benne a fájlban, így ezt előre nem is lehet kiszűrni, vagyis csak a kikapcsolás előtt tudunk dönteni a dologban. Az én megoldási javaslatom ezt az problémát is kezeli.
De hogy konstruktív is legyek:
sort -u val rendezed a fájlt (kiszűri az ismétlődéseket), majd egy szkripttel elvégzed a szomszédos időpontok ellenőrzését. A sorba rendezés miatt elég a szomszédok vizsgálata. A bash egész számok kivonására képes, így azzal is csinálhatod. Tipp:
$((1341683241-1340683241))A különbséget kell vizsgálni, hogy kisebb-e egy adott értéknél.
-----
A kockás zakók és a mellészabások tekintetében kérdezze meg úri szabóját.