Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Endlos laufendes Script läuft nicht endlos...

 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Studio Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
sideshow
•-->
•-->


Anmeldedatum: 07.05.2002
Beiträge: 130

BeitragVerfasst am: 23.01.2008 - 17:05    Titel: Endlos laufendes Script läuft nicht endlos... Antworten mit Zitat

Schönen guten Tag,

ich habe eine Liste in der Shell-Script Namen gespeichert sind.
Code:

set shellScriptList to {"script01.sh", "script02.sh", etc...}


Nun möchte ich, das bei Programmstart das erste Listenelement genommen und ausgeführt wird. Jetzt soll das Programm sagen wir z.B. 5 Sekunden einfach nichts tun.
Danach Script 2 aus der Liste, ausführen, 5 Sekunden Pause, etc... bis zum Ende der Liste. Wenn das Ender der Liste erreicht wird, also das letzte Shell-Script ausgeführt wurde (5 Sekunden warten natürlich), soll das Script wieder auf das erste Listenelement springen und wieder von vorn beginnen.

Ich habe schon diverse Sachen ausprobiert, leider ohne Erfolg. Zum einen bekomme ich keine "schöne Endlosschleife" hin - zum anderen möchte ich auch kein delay benutzen weil das Programm auch in den 5 Sekunden Pause ansprechbar bleiben soll.

Mein größtes Problem ist also, wie bekomme ich diesen "Endlosloop" hin? Habe auch schon mit idle experimentiert - leider aber auch kein Ergebnis hinbekommen.

Das mit der Pause damit das Programm nicht einfriert könnte ich notfalls auch über das Shell-Script steuern... aber auch keine so schöne Lösung!

Ich bin ratlos... Sad

Das hier hab ich mir zu Gemüte geführt, aber leider nix geschafft:
http://www.fischer-bayern.de/phpBB2/viewtopic.php?t=2564
http://www.fischer-bayern.de/phpBB2/viewtopic.php?t=2525&postdays=0&postorder=asc&highlight=idle&start=15
_________________
Meine Wenigkeit im Internet: http://www.sideshow-systems.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
sideshow
•-->
•-->


Anmeldedatum: 07.05.2002
Beiträge: 130

BeitragVerfasst am: 23.01.2008 - 17:07    Titel: Antworten mit Zitat

Ach, nicht falsch verstehen: Es geht alles wunderbar! Ich brauche nur Hilfe bei der "Endlosschleife" und dem delay!
_________________
Meine Wenigkeit im Internet: http://www.sideshow-systems.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 23.01.2008 - 18:35    Titel: Antworten mit Zitat

Code:

repeat
    repeat with scr in shellScriptList
        do shell script scr
        display dialog "Ich warte" giving up after 5
    end repeat
end repeat

Unschön ist vielleicht, daß der Dialog immer hochpoppt. Aber anders gefragt: Was willst Du denn in den 5 Sekunden machen?

Du könntest natürlich einen on idle handler bauen. Ohne zu prüfen ob es stimmt, müßte das ungefähr so gehen:
Code:

property shellScriptList : {"script01.sh", "script02.sh", etc...}
property current_index : 1
property sleeptime : 5
on idle
    set script_count to count of shellScriptList
    if current_index > script_count then set current_index to 1
    do shell script item current_index of shellScriptList
    return sleeptime
end on idle

_________________
"All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies")
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
sideshow
•-->
•-->


Anmeldedatum: 07.05.2002
Beiträge: 130

BeitragVerfasst am: 24.01.2008 - 08:51    Titel: Antworten mit Zitat

Hi Skeeve,

in den 5 Sekunden wollte ich dem Script eine Auszeit geben - bzw. anders gesagt: die Shell Scripte sollen nicht ständig ausgeführt werden. Sagen wir, die Liste wird durchgegangen, die Shell Scripte ausgeführt und dann soll 5 Minuten gewartet werden bis zum nächsten Durchlauf - deswegen die "Auszeit".

Das mit dem "giving up after..." find ich gar keine schlechte Idee - evtl. könnte man das doch auch einem "alert" Dialog geben der an das Hauptfenster "attached" ist, oder?

Mir persönlich würde die "idle" Methode besser gefallen - leider funktioniert es nicht so wie es soll. Er springt zwar in den "on idle" Handler, führt ihn aber nur einmal aus.

Das hab ich jetzt an Code:
Code:

on idle
   log "on idle"
   return 5
end idle

on opened theObject   
   -- Run shell scripts
   --runShellScripts()
   idle
end opened


Ich habe jetzt das ganze Shell-Script Listen Zeugs weggelassen und wollte nur sehen ob's funktioniert. Leider tut es das nicht...

Hast du ne Idee an was es liegen könnte?
_________________
Meine Wenigkeit im Internet: http://www.sideshow-systems.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
sideshow
•-->
•-->


Anmeldedatum: 07.05.2002
Beiträge: 130

BeitragVerfasst am: 24.01.2008 - 09:04    Titel: Antworten mit Zitat

Ah, jetzt hab ichs! Smile

Der Handler muss so heissen:
Code:

on idle theObject
   log "on idle"
   return 5
end idle


Im InterfaceBuilder muss beim File's Owner in den AppleScript Settings der "idle" Handler ausgewählt werden - sonst geht es nicht! Hier die ausführliche Info:

http://www.apfeltalk.de/forum/fortschrittsbalken-applescript-anwendung-t46489.html#post423594

Vielen Dank für deine Hilfe - hat mir sehr geholfen!
_________________
Meine Wenigkeit im Internet: http://www.sideshow-systems.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Studio Forum Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de


AppleScript für absolute Starter