NEWS

[gelöst] exec() function wert übergeben


  • Hallo

    stehe gerade vor einem Problem,

    ich habe einen exec() aufruf und muss der darin enthaltenen function einen Wert übergeben.

    So hab ich es versucht: 😞

    var meineVariable="halliHallo";
    exec('wget --no-check-certificate -0 - -q "meine aufzurufende URL", function(error,body,stderr,meineVariable){log("wert:"+meineVariable);}
    
    

    leider funktioniert das nicht, es wird ein logeintrag mit wert: undefined ausgegeben

    gibt es da eine möglichkeit??? :?:

  • Developer

    @Farmer-cb:

    ich habe einen exec() aufruf und muss der darin enthaltenen function einen Wert übergeben. `

    So wie du es machst, erzeugst du eine neue Variable im Scope der Funktion, die keinen Wert übergeben bekommt, da exec den 4. Parameter nicht erwartet. Probiere es mal so:

    var meineVariable="halliHallo";
    exec('wget --no-check-certificate -0 - -q "meine aufzurufende URL", function(error,body,stderr){log("wert:"+meineVariable);}
    
    

  • Hallo

    habs ausprobiert

    var meineVariable="halliHallo";
    exec('wget --no-check-certificate -0 - -q "meine aufzurufende URL", function(error,body,stderr){log("wert:"+meineVariable);}
    

    kommt leider auch wert:undefined 😞


  • @Farmer-cb:

    ich habe einen exec() aufruf und muss der darin enthaltenen function einen Wert übergeben. `
    Alles, was mit exec an das auszuführende Kommando (wget) übergeben werden soll, muss innerhalb der Kommandozeile übergeben werden. Beispiel:

    var meineVariable="halliHallo";
    exec('wget --no-check-certificate -0 - -q "meine aufzurufende URL"?' + meineVariable, function(error, stdout, stderr) {
       log(stdout);  // Rückgabe von wget bei erfolgreicher Ausführung
    });
    

  • heisst also so geht es nicht 😢

  • Developer

    ??? Du musst nur das 4. Argument deiner Funktion weglassen, damit diese Zugriff auf die vorher definierte Variable bekommt.

    Hast du meinen Codeschnipsel mal ausprobiert?


  • @AlCalzone:

    ??? Du musst nur das 4. Argument deiner Funktion weglassen, damit diese Zugriff auf die vorher definierte Variable bekommt.

    Hast du meinen Codeschnipsel mal ausprobiert? ` Wie ich unter #3 geschrieben habe, funktioniert das leider auch nicht.

    Oder mach ich da noch was verkehrt

    Gesendet von meinem FRD-L09 mit Tapatalk

  • Developer

    @Farmer-cb:

    Hallo

    habs ausprobiert

    var meineVariable="halliHallo";
    exec('wget --no-check-certificate -0 - -q "meine aufzurufende URL", function(error,body,stderr){log("wert:"+meineVariable);}
    

    kommt leider auch wert:undefined 😞 `

    Hab ich übersehen, sorry. Ist das der vollständige Code? So wie das da steht, dürfte meineVariable im Callback niemals undefined sein.


  • dein Hinweis war richtig

    hab jetzt nochmal rumgespielt und siehe da, es funktioniert

    mein Problem war, das ich vor lauter rumspielen, nach dem Log-Befehl nochmal var meineVariable='dd'; geschrieben und das war anscheinend das Problem

    var meineVariable="halliHallo";
    exec('wget --no-check-certificate -0 - -q "meine aufzurufende URL", 
                                 function(error,body,stderr)
                                                            {
                                                                log("wert:"+meineVariable);
                                      der Fehler  ---->  var meine Variable='test';
                                                            }
    
    

  • Der Log zeigt sicherlich

    wert:halliHallo
    

    Das liegt daran, dass meineVariable im Skript global deklariert und durch die exec-Funktion nicht beeinflusst wird.

    Es ist wohl nicht das, was Du erreichen wolltest ?


  • Doch, es ist jetzt genau so wie ich es brauchte,

Suggested Topics

838
Online

38.4k
Users

43.9k
Topics

613.2k
Posts