[GELÖST] Hilfe bei Klammerung/Entwertung bei qx-Aufruf gesucht

Begonnen von FFHEM, 25 September 2018, 15:20:03

Vorheriges Thema - Nächstes Thema

FFHEM

Hallo zusammen,
ich möchte in einem DOIF mit qx ein Shellscript aufrufen (welches funktioniert, wenn man es von anderen Stellen aus aufruft).
Ich habe Probleme mit der Perl-Klammerung, trotz Ottos guter Beschreibung.

Auf der Shell würde ich es so aufrufen (2 Parameter):

/opt/sendmsg.sh "Hier kommt der Betreff" "Hier kommt der Body"

Der FHEM-Codeschnipsel sieht z. Zt. so aus:

  {my $msg = fhem("get TYPE=monitoring default");

   if($msg){
        qx "/opt/imatuve/sendmsg.sh \"$msg\" blah";


Der qx-Aufruf funktioniert aber nicht so ganz, da in $msg mehrere Wörter stehen, die dann als mehrere Parameter aufgefasst werden.
Deshalb soll der Inhalt von $msg dem Shellscript mit einschließenden Anführungszeichen (") übergeben werden.

Also so in der Art (was aber auch falsch ist):
qx (/opt/sendmsg.sh "$msg" "Hier kommt der Body");

Ich habe fast alle Kombinationen durch und komme nicht weiter, kann jemand helfen?

Vielen Dank!
Raspberry Pi 4B, Homematic, Sonoff, Shelly, Worx, Arduino, ESP8266

FFHEM

Hab's gefunden, im String $msg waren leider noch selber versteckt 2 Hochkommazeichen.

Demnach ist das hier richtig:

qx(/opt/sendmsg.sh "Achtung $msg " " Hier Body");



Danke für's Lesen!

Raspberry Pi 4B, Homematic, Sonoff, Shelly, Worx, Arduino, ESP8266