"echo willi > Datei.txt" liefert leere Datei

Begonnen von Otto123, 08 März 2019, 12:42:50

Vorheriges Thema - Nächstes Thema

Otto123

Ich nehme Bezug auf dieses Post, 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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Wernieman

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"
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

rudolfkoenig

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.

Wernieman

#3
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
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html