• Es ist bereits Apfeltalk-Tradition und wir möchten sie auch in diesem Jahr fortsetzen: Unser Apfeltalk-Weihnachtslogo-Wettbewerb hat begonnen! Gestaltet für uns das Weihnachtsbanner, das im Monat Dezember bis zum Weihnachtsfest unsere Webseite schmücken soll. Lasst Eurer Kreativität freien Lauf! Hier geht es zum Wettbewerb --> Klick
  • November - das bedeutet oftmals Herbstblues, grauer Himmel, Tristesse und Wetter, bei dem man gern im Warmen bleibt. Aber nur oftmals! Wir fordern Euch gern auf, gegen den Herbstblues anzukämpfen und hoffen, dabei hilft Euch unser aktuelles Monatsthema. Neugierig geworden? --> Zum Mitmachen bitte hier klicken

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

  • Ersteller Ersteller Mitglied 26876
  • Erstellt am 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: