FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: FFHEM am 25 September 2018, 15:20:03

Titel: [GELÖST] Hilfe bei Klammerung/Entwertung bei qx-Aufruf gesucht
Beitrag von: FFHEM am 25 September 2018, 15:20:03
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!
Titel: [GELÖST] Antw:Hilfe bei Klammerung/Entwertung bei qx-Aufruf gesucht
Beitrag von: FFHEM am 25 September 2018, 16:05:29
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!