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

Uptime formatieren
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> OS X-Snippets
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 22.02.2007 - 12:24    Titel: Uptime formatieren Antworten mit Zitat

Mal wieder ein Snippet aufgrund eines Apfeltalk Threads

Hiermit läßt sich die uptime direkt als Text "n days n hours n minutes" oder als record ermitteln.

Update: Dank iScripts Mithilfe jetzt (hoffentlich) fehlerfrei.

Zitat:
return uptime(true)

on uptime(as_record)
   set up_time to do shell script "/usr/bin/uptime | /usr/bin/perl -ne '
   if (
    ( ($d,$h,$m) = /\\s+up(?:\\s+(\\d+)\\s+days?,)?\\s+(\\d+):0?(\\d+)/ )
      or
    ( ($m) = /(\\d+)\\s+min/ ) ) {
      $d|= 0;
      $h|= 0;
      $d.= plural( $d, q( day) );
      $h.= plural( $h, q( hour) );
      $m.= plural( $m, q( minute) );
      print qq($d $h $m\\n);
   }
   sub plural {
      return $_[1] . ( $_[0] == 1 ? q// : q/s/ );
   }
   '
   "
   if as_record then
      set up_time to words of up_time
      return {d:item 1 of up_time as number, dtext:item 2 of up_time, h:item 3 of up_time as number, htext:item 4 of up_time, m:item 5 of up_time as number, mtext:item 6 of up_time}
   end if
   return up_time
end uptime


_________________
"All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies")


Zuletzt bearbeitet von Skeeve am 28.02.2007 - 10:01, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 27.02.2007 - 08:37    Titel: Antworten mit Zitat

hi, skeeve.
bei mir liefert das shell script nix als ergebnis. ist da evtl. irgendein zeichen durchs posten hopps gegangen? (denn so, wie ich dich kenne, ist das script ja bestimmt von dir getestet u. für gut befunden.)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 27.02.2007 - 08:54    Titel: Antworten mit Zitat

iScript hat Folgendes geschrieben:
hi, skeeve.
bei mir liefert das shell script nix als ergebnis. ist da evtl. irgendein zeichen durchs posten hopps gegangen? (denn so, wie ich dich kenne, ist das script ja bestimmt von dir getestet u. für gut befunden.)

Hab es gerade per copy&paste übernommen und es läuft. Prüfe mal bitte die Pfade von uptime und perl.
_________________
"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
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 27.02.2007 - 09:47    Titel: Antworten mit Zitat

die pfade sind okay. es ist aber auch nicht so, dass ich es wirklich brauche.
ich wollte nur drauf aufmerksam machen. wenn's läuft, ist's ja okay.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 27.02.2007 - 10:13    Titel: Antworten mit Zitat

iScript hat Folgendes geschrieben:
die pfade sind okay

Was passiert, wenn Du das perl script einzeln ausführst? Bedenke dabei, daß doppelte \ auf eins zu reduzieren sind.
_________________
"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
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 27.02.2007 - 19:23    Titel: Antworten mit Zitat

gleiches ergebnis, nämlich keines.
Code:
/usr/bin/uptime | /usr/bin/perl -ne 'if (($d,$h,$m)=/(\d+ days?),\s+(\d+):0?(\d+)/) { $h.= $h==1 ? q( hour) : q( hours); $m.= $m==1 ? q( minute) : q( minutes); print qq($d $h $m\n); }'


/usr/bin/uptime liefert:
Code:
18:24  up 23 mins, 2 users, load averages: 0.47 0.50 0.45

(vielleicht bin ich nicht lang genug "up" für deine perl-wurst?)
_________________
- anholn deit kriegen -
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 27.02.2007 - 22:03    Titel: Antworten mit Zitat

iScript hat Folgendes geschrieben:
/usr/bin/uptime liefert:
Code:
18:24  up 23 mins, 2 users, load averages: 0.47 0.50 0.45

(vielleicht bin ich nicht lang genug "up" für deine perl-wurst?)

GENAU! Danke für den Hinweis!

Was meldet es jetzt, wo Du schon über 1h up bist?
_________________
"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
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 28.02.2007 - 00:35    Titel: Antworten mit Zitat

Code:
23:32  up  1:02, 3 users, load averages: 1.19 0.77 0.47

ergebnis: nix.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 28.02.2007 - 10:13    Titel: Antworten mit Zitat

iScript hat Folgendes geschrieben:
Code:
23:32  up  1:02, 3 users, load averages: 1.19 0.77 0.47

ergebnis: nix.

Ich weiß Ist jetzt eingebaut. Ich mußte nur wissen, wie das Format ist, um die Erkennung nachzuschieben. Eingebaut. Siehe Oben.
_________________
"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
Nelly
•-->
•-->


Anmeldedatum: 23.09.2006
Beiträge: 23

BeitragVerfasst am: 07.03.2007 - 13:09    Titel: Antworten mit Zitat

Hallo Skeeve,

wie kann man sich das Ergebnis in einem Dialogfenster oder in der Menübar anzeigen lassen? Ich habe das Skript mal so kopiert und in den ScriptEditor eingefügt. Unter Event-Protokoll erhalte ich auch ein Ergebnis:
"0 days 1 hour 14 minutes"

Unter Ergebnis erhalte ich als Ausgabe {d:0, dtext:"days", h:1, htext:"hour", m:14, mtext:"minutes"}.

Wie kann ich mir das jetzt irgendwie anzeigen lassen? Mit display dialog war ich irgendwie dazu nicht in der Lage. Was mache ich falsch?

Viele Grüsse,
Nelly
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
spirigwi
•----->
•----->


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

BeitragVerfasst am: 07.03.2007 - 15:16    Titel: Antworten mit Zitat

--hast du so probiert ?
property up_time : {d:0, dtext:"days", h:1, htext:"hour", m:14, mtext:"minutes"} --<--Beispiel

set up_time to words of up_time
display dialog up_time as text

_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Nelly
•-->
•-->


Anmeldedatum: 23.09.2006
Beiträge: 23

BeitragVerfasst am: 07.03.2007 - 15:23    Titel: Antworten mit Zitat

spirigwi hat Folgendes geschrieben:
--hast du so probiert ?
property up_time : {d:0, dtext:"days", h:1, htext:"hour", m:14, mtext:"minutes"} --<--Beispiel

set up_time to words of up_time
display dialog up_time as text


Hallo spirigwi,

nein, ich habe keine Ahnung, was das ist. Ich dachte, ich könnte dann anschliessend mit 'display dialog uptime' die Zeit in einem Dialogfeld ausgeben lassen. Das scheint aber nicht der Fall zu sein. Das Skript an sich - sowohl Deins als das von Skeeve - sind mir viel zu hoch. Ich kann das nur ungefähr nachvollziehen.

Vielen Dank aber für die Mühe. Mir das erklären zu wollen, ist wahrscheinlich zwecklos Sad.

Viele Grüsse,
Nelly
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 07.03.2007 - 15:24    Titel: Antworten mit Zitat

Nelly hat Folgendes geschrieben:
Hallo Skeeve,

wie kann man sich das Ergebnis in einem Dialogfenster

display dialog uptime(false)
_________________
"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
Nelly
•-->
•-->


Anmeldedatum: 23.09.2006
Beiträge: 23

BeitragVerfasst am: 07.03.2007 - 15:30    Titel: Antworten mit Zitat

Skeeve hat Folgendes geschrieben:
Nelly hat Folgendes geschrieben:
Hallo Skeeve,

wie kann man sich das Ergebnis in einem Dialogfenster

display dialog uptime(false)


Danke Skeeve, aber bei mir tut sich nichts. Wie gesagt, das Skript funktioniert an sich schon und gibt im Ergebnisfeld auch den richtigen Wert aus, aber mit 'display dialog uptime(false)' erhalte ich kein Dialogfeld.

Den Vorschlag von spirigwi habe ich auch getestet (wahrscheinlich habe ich es falsch gemacht). Wenn ich seinen Code an Deinen dranhänge, dann passiert - wie gehabt - nichts. Wenn ich seinen Code einzeln abspeichere, dann erhalte ich ein leeres Dialogfenster.

Viele Grüsse,
Nelly
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 07.03.2007 - 15:42    Titel: Antworten mit Zitat

Nelly hat Folgendes geschrieben:
Danke Skeeve, aber bei mir tut sich nichts. Wie gesagt, das Skript funktioniert an sich schon und gibt im Ergebnisfeld auch den richtigen Wert aus, aber mit 'display dialog uptime(false)' erhalte ich kein Dialogfeld.

Bei mir tut's. Ich nehme mal an, Du hast das display Dialog hinter das return geschrieben. Das kann natürlich nicht klappen.

So sollte es im Ganzen aussehen:
Zitat:
display dialog uptime(false)

on uptime(as_record)
   set up_time to do shell script "/usr/bin/uptime | /usr/bin/perl -ne '
if (
( ($d,$h,$m) = /\\s+up(?:\\s+(\\d+)\\s+days?,)?\\s+(\\d+):0?(\\d+)/ )
or
( ($m) = /(\\d+)\\s+min/ ) ) {
$d|= 0;
$h|= 0;
$d.= plural( $d, q( day) );
$h.= plural( $h, q( hour) );
$m.= plural( $m, q( minute) );
print qq($d $h $m\\n);
}
sub plural {
return $_[1] . ( $_[0] == 1 ? q// : q/s/ );
}
'
"
   if as_record then
      set up_time to words of up_time
      return {d:item 1 of up_time as number, dtext:item 2 of up_time, h:item 3 of up_time as number, htext:item 4 of up_time, m:item 5 of up_time as number, mtext:item 6 of up_time}
   end if
   return up_time
end uptime

_________________
"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
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> OS X-Snippets 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