Hauptmenü

Systembefehl echo

Begonnen von horni, 16 November 2025, 22:38:14

Vorheriges Thema - Nächstes Thema

horni

Ich komm einfach nicht weiter. Villeicht kann mir mal ja jemand sagen wo mein Fehler ist . Ich will doch nur das er 2 Zahlen ausließt und diese untereinander in eine Datei schreibt. Ich bekomme es einfach nicht hin..

lacross_draussen_busch:.* {
my $wgt1 = minNum( ReadingsNum("lacross_draussen_busch","temperature",20), ReadingsNum("Tempdraussen","temperature",20));
my $wgt2 = ReadingsNum("lacross_draussen_busch","humidity",20)
system('echo "outsidewert = $wgt1 \noutfeuchtewert = $wgt2 "> /tmp/technolineouttemp.txt')}

So schreibt er zumindestens schon mal untereinander die Zeilen

outsidewert =
outfeuchtewert =

aber die $wgt strings bleiben in der Datei leer. Ich verstehe es einfach nicht. Ärgert mich

So schreibt er mir eine Zeile mit dem Wert aber da geht \n nicht
system("echo outsidewert = $wgt1 > /tmp/technolineouttemp.txt")}

TomLee

#1
Hallo,

ohne es jetzt nachvollzogen zu haben, würde ich vermuten das in qq() die Variablen aufgelöst werden.

system(qq(echo "outsidewert = $wgt1 \noutfeuchtewert = $wgt2 "> /tmp/technolineouttemp.txt))}
Gruß Thomas

edit:

ausprobiert, sollte funzen.

horni

Ja super. Besten Dank.. Da wäre ich Anfänger ja nie drauf gekommen. Funktioniert dann gleich ohne Probleme.

Prof. Dr. Peter Henning

Das liegt einfach daran, dass Perl innerhalb von '..' keine Variablensubstitution macht, es benötigt also qq(..) oder ".."

LG

pah