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

Problem mit shell, wie bekomme ich das ausführungsresult zur
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Kirom
•-->
•-->


Anmeldedatum: 05.04.2005
Beiträge: 93

BeitragVerfasst am: 24.09.2005 - 11:43    Titel: Problem mit shell, wie bekomme ich das ausführungsresult zur Antworten mit Zitat

Hallo,

ich möchte prüfen ob ein host im Netz online ist

set connect to do shell script "ping -c 3 -o -t 3 192.168.0.176"
--c steht für count, alos 3Versuche, o steht bei erfolgreichen rx ping beenden und t für timeout ?3s?

log connect

(*--- 192.168.0.176 ping statistics ---
3 packets transmitted, 0 packets received, 100% packet loss"*)

Ja, super, aber das möchte ich nicht wissen!
Sondern nur ob die Ausführung fehlerfrei war! Im "man ping" steht das 0
für erfolgreich zurückgeliefert wird.
Nun meine Frage wie kann ich die 0 bzw anderen errorlevel an applescript zurückgeben?

Vllt. jemand eine Idee? Und bitte nicht auf andere Methoden verweisen, ich benötige diese result-Umleitung auch noch für andere shell-commands.

Mal schauen, wem was einfällt..
_________________
Gruß


Zuletzt bearbeitet von Kirom am 24.09.2005 - 17:39, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1529
Wohnort: Olten-CH

BeitragVerfasst am: 24.09.2005 - 15:32    Titel: Re: Problem mit shell, wie bekomme ich das ausführungsresult Antworten mit Zitat

Kirom hat Folgendes geschrieben:
wie kann ich die 0 bzw anderen errorlevel an applescript zurückgeben?
...........
...Und bitte nicht auf andere Methoden verweisen


Gegenfrage:

darf man wenigstens zur Auslösung des Shell und die Result-Variante 0 in einem AS-kompilierenden Skript-Editoren-Fenster benutzen, oder wie sollen die Spielregeln lauten?
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Kirom
•-->
•-->


Anmeldedatum: 05.04.2005
Beiträge: 93

BeitragVerfasst am: 24.09.2005 - 17:38    Titel: Antworten mit Zitat

zurückgeliefert wird errorlevel 0 ->host vorhanden und ansprechbar
naja und dann weiter im Text, jetzt kann ich ihm Infos entlocken, wenn nicht Fehlermeldung mit entsprechenden Text und Abbruch

Das Problem ist wenn ich den Host direkt anspreche und er ist nicht online, scheint es als wenn etwas klemmt, da es schon eine Weile dauert, bis dann eine Fehlermeldung kommt, diese lässt sich schön mit try und on error behandeln.

Aber es soll ja schneller gehen.

Ich kann auch meinen kompletten wüsten script mal posten, was ich allerdings nicht für sehr sinnvoll halte Embarassed

Und die Sache ist für meinen privaten Gebrauch.
_________________
Gruß
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1529
Wohnort: Olten-CH

BeitragVerfasst am: 24.09.2005 - 17:58    Titel: Antworten mit Zitat

Kirom hat Folgendes geschrieben:
den Host direkt anspreche und er ist nicht online, scheint es als wenn etwas klemmt, da es schon eine Weile dauert
das kenn ich von einer gestern in Snows Forum gestellten Frage an Folker, ob man dieses Suchen des Finders bei einem nicht auffindbaren Host verkürzen könnte, er hat dann paar Vorschläge gemacht.

Ich hab so nachgefragt, dass der Host mittels FileSharing gesucht wird, was zwar in deinem Fall nicht ist aber auch mit deiner Methode klemmen offenbar unangenehme Wartezeiten, hab ichs richtig verstanden und eingeordnet, deine Frage meine ich?
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Kirom
•-->
•-->


Anmeldedatum: 05.04.2005
Beiträge: 93

BeitragVerfasst am: 24.09.2005 - 18:26    Titel: Antworten mit Zitat

spirigwi hat Folgendes geschrieben:
offenbar unangenehme Wartezeiten


genau getroffen Confused

deswegen, habe ich gedacht ich mach es mit einem ping,
von mir aus auch mit einem anderen shell-Befehl

Aber was ebend wichtig wäre, wie kriege ich das result ins applescript und nicht die string-Ausgabe
1. wäre es interessant
2. kann man das immer wieder mal gebrauchen
3. keine Lust irgendwelche strings auszuwerten, wie oben geloggt

edit: könntest Du bitte mal genauer schreiben welchen thread von folker Du meinst? find ihn nicht Embarassed
_________________
Gruß
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1529
Wohnort: Olten-CH

BeitragVerfasst am: 24.09.2005 - 19:50    Titel: Antworten mit Zitat

Kirom hat Folgendes geschrieben:
thread von folker

kein problem
http://www.fischer-bayern.de/phpBB2/viewtopic.php?p=7472

PS vielleicht können wir gemeinsam den JETI der AppleSkripter (= kaum auffindbar, wenn ja, dann auch oho, immer Substanz muss aber blitzschnell sein und wenn due formulierst und nicht ich haben wir nochmals eine Chance)
http://www.fischer-bayern.de/phpBB2/viewtopic.php?p=7472

http://www.fischer-bayern.de/phpBB2/viewtopic.php?p=7472
(für den Fall dass man meinen Text 3- mal lesen müssen sollte)
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
hweber
•--->
•--->


Anmeldedatum: 01.02.2004
Beiträge: 397

BeitragVerfasst am: 24.09.2005 - 21:20    Titel: Antworten mit Zitat

Zitat:

offenbar unangenehme Wartezeiten

Hast Du doch nur, wenn Du in ein WAN "pingst"? Wenn das im LAN auftritt, ist was nicht in Ordnung.

Code:

if (do shell script "ping -c1 192.168.0.28 | grep -c '1 packets received'") = "1" then
   display dialog "host is up"
end if
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1954
Wohnort: Deiningen

BeitragVerfasst am: 24.09.2005 - 21:33    Titel: Antworten mit Zitat

Da könnte man genauso gut so schreiben:

try
    set connect to do shell script "ping -c 3 -o -t 3 192.168.0.176"
on error errMsg
    if errMsg contains "0 packets received" then
        display dialog "Der Server ist down!"
    end if
end try


Kirom sucht aber eine allgemein gültige Lösung. Also wenn die Meldung kein "x packets received" enthält funktionieren unsere beiden Skripte nicht wie erwartet.

Es gibt bestimmt viele Aktionen, die man per 'do shell script' ausführen kann, die Erfolg und Mißerfolg in der Form von 0 und 1 zurück liefern. Ich denke, Kirom sucht eine Lösungsmöglichkeit, das auszuwerten.
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
hweber
•--->
•--->


Anmeldedatum: 01.02.2004
Beiträge: 397

BeitragVerfasst am: 24.09.2005 - 21:53    Titel: Antworten mit Zitat

wann gibt es denn auf Ping kein "x packets received"?
h
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1954
Wohnort: Deiningen

BeitragVerfasst am: 24.09.2005 - 22:12    Titel: Antworten mit Zitat

hweber hat Folgendes geschrieben:
wann gibt es denn auf Ping kein "x packets received"?
h


Das gibt's immer.
Ehrlich gesagt ist es mir nicht ganz klar, um was es letztendlich gehen soll.
Ich habe es so aufgefasst, dass die Error-Levels abgefragt werden sollen. Also nicht das zurück gelieferte Ergebnis zerlegen und/oder überprüfen, sondern einfach den Status des Shell-Skripts.

Was ist, wenn 0 Datenpakete gesendet werden - warum auch immer?
Dann können auch keine Daten zurück kommen. Daraus kann man aber nicht schließen, dass der angesprochene Server down ist.

Verschickt man per 'ping' 3 Datenpakete und alle drei werden bestätigt, ist das Skript fehlerfrei gelaufen. Verschickt man 3 Datenpakete und es werden 0 bestätigt ist es auch fehlerfrei gelaufen. Das Skript hat ja schließlich seine Aufgabe erfüllt.

Wenn allerdings gar keine Pakete verschickt werden, ist das ein Fehler im Ablauf des Skripts. Dann müsste der entsprechende Fehler gemeldet werden.

So wie ich es verstanden habe geht es darum, zu prüfen, ob das Skript fehlerfrei gelaufen ist.
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Kirom
•-->
•-->


Anmeldedatum: 05.04.2005
Beiträge: 93

BeitragVerfasst am: 24.09.2005 - 22:19    Titel: Antworten mit Zitat

ich mach es nun so wie snow geschrieben hat, das ist dann aber mehr Schönheitsarbeit..

habe das nächste wichtigere Problem, das hier will nicht:

keystroke "c" using command shift down

in der Bibliothek zu system events steht:
keystroke?v : cause the target process to behave as if keystrokes were entered
keystroke Unicode text : The keystrokes to be sent.
[using command down/control down/option down/shift down] : modifiers with which the keystrokes are to be entered

geht aber nicht

den thread habe ich dazu gefunden, da gehts aber auch nicht so recht?
http://www.fischer-bayern.de/phpBB2/viewtopic.php?t=1275&highlight=keystroke

noch eine Idee
_________________
Gruß
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Kirom
•-->
•-->


Anmeldedatum: 05.04.2005
Beiträge: 93

BeitragVerfasst am: 24.09.2005 - 22:29    Titel: Antworten mit Zitat

ich antworte mir mal selber, korrekt heisst es:
keystroke "c" using shift down

PS: ich schreibe mir einen dbox2 tv script, läuft schon gut, wenn einer den braucht, poste ich ihn
_________________
Gruß
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
hweber
•--->
•--->


Anmeldedatum: 01.02.2004
Beiträge: 397

BeitragVerfasst am: 24.09.2005 - 22:34    Titel: Antworten mit Zitat

@snow
erschrieb ja
Zitat:
Hallo,

ich möchte prüfen ob ein host im Netz online ist

und dafür möchte er true or false

ansonsten: ping -c0 192.168.0.999
ping: invalid count of packets to transmit: `0'
aber warum sollte er -c0 setzen?

@kirom
da müßtest Du schon sagen welches UI welches Programmes du ansprechen willst, pauschal ist die Frage wohl nicht zu beantoworten, oder?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1954
Wohnort: Deiningen

BeitragVerfasst am: 24.09.2005 - 22:44    Titel: Antworten mit Zitat

Unser Problem ist, dass wir nicht wissen, was die eigentliche Frage ist.

Kirom hat Folgendes geschrieben:
Nun meine Frage wie kann ich die 0 bzw anderen errorlevel an applescript zurückgeben?


Ob, und wie viele Datenpakete zurück kommen ist ein Ergebnis. - Das dürfte dann wenig mit Fehlern zu tun haben.

hweber hat Folgendes geschrieben:
ansonsten: ping -c0 192.168.0.999
ping: invalid count of packets to transmit: `0'
aber warum sollte er -c0 setzen?


Natürlich soll er nicht -c 0 setzen. Aber wenn bei -c 3 keine Pakete gesendet werden, wäre das ein Fehler, den man abfragen müsste.
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Kirom
•-->
•-->


Anmeldedatum: 05.04.2005
Beiträge: 93

BeitragVerfasst am: 24.09.2005 - 22:54    Titel: Antworten mit Zitat

mit dem ping will ich darauf hinaus (Auszug aus dem manual):
RETURN VALUES
The ping utility returns an exit status of zero if at least one response
was heard from the specified host; a status of two if the transmission
was successful but no responses were received; or another value (from
<sysexits.h>) if an error occurred.

und hier ein Auszug meines scripts, zum Verständnis,
meine Prozedur getpids würgt ewig lange herum, ohne Rückmeldung, wenn die box aus ist. Da dann keine Netzwerkverbindung besteht,
Lampe am switch ist auch aus, deswegen ping wenn da dann, ist noch nicht hingeschrieben

main()

--
hauptteil des scripts, Aufruf der einzelnen Prozeduren, erstellt 24.9.2005
--
es soll mal ein script über die safariseite: www.tvinfo.de, www.klack.de oder www.tvtv.de rennen und entsprechende Knöpfe hinzufügen, wie play oder erstelle timerx
--
oder nur erstmal ein schnelles zapping programm erstellen, mit vlc stop->zap->getpids->vlc play
--
obs geht, versuchen!
on main()
   --dboxonlinecheck()
   vlcstop()
   --
zap()
   
getpids()
   
vlcplay()
   --
aufnahme() --zeichnet in dateiname auf, zu bevorzugen
   (*
hier ist immer noch ein bug, wenn man etwas herumspielt mit knopf durchsuchen usw. gehts plötzlich
    das problem ist das die output instance praktisch die url, speicherdatei irgendwie nicht richtig übergeben wird, Lsg. wird noch gesucht*)
   
   --
VLCpershellscript() --testzwecke, geht nur play und blockt applescript
   --
VLCperterminal() --testzwecke, geht nur play mit terminalfenster und meldungen
end main

--
prüft ob die box online ist, erstellt 23.9.2005
--
noch ohne Auswertung, es fehlt die rücklieferung des errorlevels von der shell, 0 für dbox da, vllt. mit return true ausgeben?
on dboxonlinecheck()
   set connect to do shell script "ping -c 3 -o -t 3 dbox"
   
display dialog connect giving up after 1
   
log connect
end dboxonlinecheck

_________________
Gruß
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X Alle Zeiten sind GMT + 2 Stunden
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
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