reminett Skrevet 9. mars 2010 Del Skrevet 9. mars 2010 Dagens lille hjernetrim Jeg prøver å tenke meg til hvordan jeg skal løse dette, men kommer ikke på en "enkel" måte. Jeg skal ha et bash-script til å overvåke i en mappe om "morkt.true" finnes eller ikke. Hvis den finnes, og blir slettet så skal denne kommandoen kjøres: "aplay detblelyst.wav" én gang. Dersom den ikke finnes, og blir opprettet, skal denne kommandoen kjøres: "aplay detblemorkt.wav" én gang. Problemet er at dersom jeg kjører en if-setning-loop, så vil den jo spille av filene kontinuerlig.. Men jeg vil jo at den skal spille av i det det skjer en endring. Jeg må med andre ord få den til å logge at kommandoen er kjørt én gang etter at filen ble opprettet eller slettet.... Noen som vet om en enkel måte å gjøre det på, uten å ha milevis med ifsetninger? Lenke til kommentar
kpolberg Skrevet 10. mars 2010 Del Skrevet 10. mars 2010 Hva med å opprette en fil når lyden har blitt avspillt. For så å fjerne den når morkt.true går over til morkt.false eller hvordan du gjør det. Eventuelt kan du sjekke på modify tiden, for så å oppdatere denne. Lenke til kommentar
Del Skrevet 11. mars 2010 Del Skrevet 11. mars 2010 Du må bruke en demon til å overvåke. Det er flere som kan gjøre dette, det mest opplagte er kanskje å bruke cron til å se etter filen med jevne mellomrom. Lenke til kommentar
Kaptein... Skrevet 12. mars 2010 Del Skrevet 12. mars 2010 Du må bruke en demon til å overvåke. Det er flere som kan gjøre dette, det mest opplagte er kanskje å bruke cron til å se etter filen med jevne mellomrom. Du kan gjøre følgende: Cron -> bash-script. Cron gir deg murligheten til å gjøre faste oppgaver i tids intervaler. Den oppgaven du ønsker å utføre er et script (bash) som tester om morkt.true finnes, en kjapp if statement skulle holde :-) der av videre legger du inn hva du måtte ønske skal skje "if" mappen ikke eksisterer. Lenke til kommentar
duckers Skrevet 12. mars 2010 Del Skrevet 12. mars 2010 Kan du ikke benytte en lokal variabel som forteller om lyden er spilt eller ikke? Hvis mappen er fjernet spiller du lyden og setter variabelen sann, neste gang du kjører scriptet sjekker du om mappen er det og om lyden er spilt. Siden den er spilt spilles den ikke på nytt. (Dersom jeg forsto problemstillingen rikig da. :-) Lenke til kommentar
Kagee Skrevet 12. mars 2010 Del Skrevet 12. mars 2010 (endret) Fra «man inotifywait» («sudo apt-get install inotify-tools») DESCRIPTION inotifywait efficiently waits for changes to files using Linux's inotify(7) interface. It is suitable for waiting for changes to files from shell scripts. It can either exit once an event occurs, or continually execute and output events as they occur. Du er antagelig interesert i å reagere på CREATE og DELETE-events Endret 12. mars 2010 av Kagee Lenke til kommentar
reminett Skrevet 16. mars 2010 Forfatter Del Skrevet 16. mars 2010 Kagee: Takk! Det var akkurat det jeg var på utkikk etter, slik at jeg slapp lokale variabler osv. Lenke til kommentar
reminett Skrevet 13. mai 2010 Forfatter Del Skrevet 13. mai 2010 Hei igjen, folkens. Jeg har nå fått skrevet scriptet, og det fungerer utmerket. Her er det, tilfelle noen har nytte av det: #! /bin/bash #HENTE INFORMASJON OM HVOR MANGE LUX DET ER I ROMMET OUTPUT=`/usr/bin/ssh [email protected] /usr/bin/light-meter | cut -c1` if [ "$OUTPUT" -gt "0" ]; then # HVIS DET ER LYST I ROMMET (mer enn 0 lux), GJØR FØLGENDE: #SLETTE EVENTUELL morktplayed.true: if [ -f morktplayed.true ]; then rm morktplayed.true fi if [ -f lystplayed.true ]; then # HVIS DET HAR BLITT SPILT AV LYD OM AT DET ER LYST I ROMMET, GJØR INGENTING exit else # HVIS DET IKKE HAR BLITT SPILT AV LYD, SPILL AV /usr/bin/ssh 10.10.10.2 /usr/bin/aplay /mnt/data/lyder/blelys.wav touch lystplayed.true fi else # HVIS DET ER MØRKT I ROMMET, GJØR FØLGENDE: #SLETTE EVENTUELL lystplayed.true: if [ -f lystplayed.true ]; then rm lystplayed.true fi if [ -f morktplayed.true ]; then # HVIS DET HAR BLITT SPILT AV LYD OM AT DET HAR BLITT MØRKT I ROMMET, GJØR INGENTING exit else # HVIS DET IKKE HAR BLITT SPILT AV LYD, SPILL AV /usr/bin/ssh 10.10.10.2 /usr/bin/aplay /mnt/data/lyder/blemorkt.wav touch morktplayed.true fi fi Håper noen får nytte av det Jeg ser at tabulatorne mine forsvant når jeg postet innlegget... ble litt uoversiktlig da, men... Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå