Ich nehme Bezug auf dieses Post (https://forum.fhem.de/index.php?topic=98268.msg916237#msg916237), wollte aber dort nicht den Thread kapern.
Ich habe das nochmal genauso getestet wie Du - auf verschiedenen Raspbian Systemen, es ist mir aber schon früher immer aufgefallen.
Das Kommando "echo 1 `date --date=tomorrow +%m-%d` Urlaub > FHEM/urlaub.holiday" führt bei mir zwar zu einer Datei /opt/fhem/FHEM/urlaub.holiday, aber die ist leer. Der stdout wird meines Erachtens über ">" nicht in die Datei gelenkt sondern irgend woanders hin.
Mache ich das Gleiche, aber mit {qx(echo 1 `date --date=tomorrow +%m-%d` Urlaub > FHEM/urlaub.holiday)} funktioniert das wie gewünscht. Auch mit {system(echo 1 `date --date=tomorrow +%m-%d` Urlaub > FHEM/urlaub.holiday)} funktioniert das. Mitschnitt Telnet:
PiB>
PiB> "echo 1 `date --date=tomorrow +%m-%d` Urlaub > FHEM/urlaub.holiday"
PiB> {qx(cat FHEM/urlaub.holiday)}
PiB> {system("echo 1 `date --date=tomorrow +%m-%d` Urlaub > FHEM/urlaub.holiday")}
-1
PiB> {qx(cat FHEM/urlaub.holiday)}
1 03-09 Urlaub
PiB>
Oder nochmal mit Urlaub:
PiB> set urlaub reload
PiB> l urlaub
Internals:
CFGFN
FUUID 5c8244cb-f33f-27f7-37cb-88455a02b0610a86
HOLIDAYFILE ./FHEM/urlaub.holiday
NAME urlaub
NR 164
READONLY 0
STATE none
TRIGGERTIME 1552086002.01074
TYPE holiday
READINGS:
2019-03-08 12:40:15 state none
2019-03-08 12:40:15 tomorrow Urlaub
2019-03-08 12:40:15 yesterday none
Attributes:
room Test
PiB> "echo 1 `date --date=tomorrow +%m-%d` Urlaub > FHEM/urlaub.holiday"
PiB> set urlaub reload
PiB> l urlaub
Internals:
CFGFN
FUUID 5c8244cb-f33f-27f7-37cb-88455a02b0610a86
HOLIDAYFILE ./FHEM/urlaub.holiday
NAME urlaub
NR 164
READONLY 0
STATE none
TRIGGERTIME 1552086002.537
TYPE holiday
READINGS:
2019-03-08 12:40:49 state none
2019-03-08 12:40:49 tomorrow none
2019-03-08 12:40:49 yesterday none
Attributes:
room Test
PiB>
Was kann da bei mir anders sein als bei Dir? Aber wie gesagt, da kann ich raspbian frisch aus der Tüte nehmen, da ist das auch so.
Gruß Otto
Laut Rudi im anderen Thread:
Zitat- zweitens wird "" auch mit system implementiert, es wird nur '>> $currlogfile 2>&1 &' angehaengt
Da sind also mehrfache Umleitungen ... weiß jetzt nicht, welche Umleitung welche "schlägt"
Evtl. liegt es an dem systemshell, der keine doppelte Umleitung erlaubt?
Auf Ubuntu 14.04 und auf OSX funktioniert es.
Habe eine weile rungespielt, ohne Erkenntnisgewinn.
Wenn jemand mehr weiss, der soll sich bitte melden.
Wenn ich es richtig verstehe wird aus:
echo willi >Datei.txt
vor dem Ausführen:
echo willi >Datei.txt >> $currlogfile 2>&1 &
Da sollte eigentlich die erste Umleitung gewinnen .. komisch ...
Korrektur:
Habe es mal auf der Konsole (ohne FHEM) getestet:
echo willi >Datei.txt >>Datei2.log 2>&1 &
Die 2. Umleitung überschreibt die erste. Ist im Nachhinein auch logisch. 1Es wird einfach nur die Ausgabe umgeleitet. Die 2. Überschreibt aber die erste, d.h. der Inhalt landet in der 2. Umleitung.
Wie Rudi schreibt, könnte auch an der Shell liegen, hier ist es eine bash, würde mich jetzt aber seeehr wundern.
(bei einer dash ist es genau so)
Ergänzung:
Danach müsste obiges geschrieben werden mit:
echo willi | tee Datei.txt
Dann sollte eigentlich folgendes rauskommen:
echo willi | tee Datei.txt >>Datei2.log 2>&1 &
Und das funzt ... habe jetzt hier nur kein Testbares FHEM