1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

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

Dieses Thema im Forum "OS X-Developer" wurde erstellt von Rosi-janni, 18.03.10.

  1. Rosi-janni

    Rosi-janni Rheinischer Winterrambour

    Dabei seit:
    27.02.07
    Beiträge:
    926
    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!
     
    #1 Rosi-janni, 18.03.10
    Zuletzt bearbeitet: 18.03.10

Diese Seite empfehlen