• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Shell- iCalBuddy Events von Morgen in Datei umleiten schlägt fehl

  • Ersteller Mitglied 26876
  • Erstellt am

Mitglied 26876

Gast
Moin Jungs…

Ich habe ein äußerst merkwürdiges Problem bei der Programmierung meiner GeekTool Scripts. Ich habe ein Main Script, dass Sachen im Background regelt, z.B. Pings ausführt und die Ausgaben jeweils in Dateien umleitet.
Jetzt fand ich das nette Tool namens "iCalBuddy" und fing sofort an es zu lieben.
Ich möchte meine Events von Morgen in eine Datei umleiten, um die Events zu displayen via GeekTool.
In einem eigenständigen Script funktioniert das Ganze auf wunderbar, aber wenn ich den Teil 1:1 in mein MainScript übertrage sagt GeekTool fail (roter Button) und die Datei der Termine bleibt stetig leer.
Aber warum?
Im eigenständigen Script sieht's so aus:
Code:
#!/bin/bash
#
# Prints tomorrow's events using icalBuddy
#

day_in_seconds=86400

# get current seconds since the epoch
sec=`date +%s`

# get tomorrows date as seconds since the epoch
sec_tomorrow=`expr ${sec} + ${day_in_seconds}`

# 'start' date/time, in the format required by icalBuddy
start_dt="`date -r ${sec_tomorrow} +'%Y-%m-%d 00:00:00 %z'`"

# 'end' date/time, in the format required by icalBuddy
end_dt="`date -r ${sec_tomorrow} +'%Y-%m-%d 23:59:59 %z'`"

# Resultat filtern: um die Kalender raus zu filtern werden mit sed alle eingeklammerten Elemente entfernt, weiter werden die Zeiten und Steuerzeichen gegrept.
icalBuddy eventsFrom:"${start_dt}" to:"${end_dt}"|sed s/\(.*\)//g| egrep -v [0-9]+ | egrep -o [A-ZÄÖÜ][a-zäöü].+>~/Desktop/stundenplan.txt

Alles kein Problem, das Ergebnis ist toll… Aber in meinem MainScript bleibt die Datei einfach leer, auch wenn ich meine Filterung weglasse.
Warum?

Auszug des MainScripts:
Code:
# Tageszeiten&Tag echon
echo $reaDatum>~/Library/Pinger/.datum
echo $uhrzeit>~/Library/Pinger/.time


# Termine von Morgen filtern und echon
day_in_seconds=86400
sec=`date +%s`
sec_tomorrow=`expr ${sec} + ${day_in_seconds}`
start_dt="`date -r ${sec_tomorrow} +'%Y-%m-%d 00:00:00 %z'`"
end_dt="`date -r ${sec_tomorrow} +'%Y-%m-%d 23:59:59 %z'`"

icalBuddy eventsFrom:"${start_dt}" to:"${end_dt}"| sed s/\(.*\)//g| egrep -v [0-9]+ | egrep -o [A-ZÄÖÜ][a-zäöü].+>~/Desktop/stundenplan.txt

Wenn ich jetzt etwas wie folgend mache, geht das Ganze …
Code:
echo "(sehr)Doof 543:123:321"| sed s/\(.*\)//g| egrep -o [A-ZÄÖÜ][a-zäöü].+>~/Desktop/stundenplan.txt
Aber sobald ich die Zahlen hinzusetze zur Filterung schlägt's fehl… Denke liegt an der einen Zeile… Was sagt ihr?

Jan


Edit:
Okay also ich bekomme grade auch diesen Code
Code:
icalBuddy eventsToday| head -n 1| sed s/\(.*\)//g| egrep -o [A-Z][a-z]+>~/Desktop/nextEvent.txt
umgeleitet, die Datei bleibt leer.

LÖSUNG:

Ich weiß nicht wie, ich weiß nicht warum. Jedoch musste ich den kompletten Pfad angeben, zu icalBuddy, meine ganzen Filterungen einmal rausnehmen, wieder einsetzen und plötzlich ging alles…
Code:
# Termine von Morgen filtern und echon
day_in_seconds=86400
sec=`date +%s`
sec_tomorrow=`expr ${sec} + ${day_in_seconds}`
start_dt="`date -r ${sec_tomorrow} +'%Y-%m-%d 00:00:00 %z'`"
end_dt="`date -r ${sec_tomorrow} +'%Y-%m-%d 23:59:59 %z'`"

/usr/local/bin/icalBuddy eventsFrom:"${start_dt}" to:"${end_dt}"| sed s/\(.*\)//g| egrep -v [0-9]+| egrep -o [A-ZÄÖÜ][a-zäöü].+>~/Desktop/stundenplan.txt

Ich hoffe ich kann Anderen weiter helfen!
 
Zuletzt bearbeitet von einem Moderator: