[GELÖST] URL per Script übergeben schlägt fehl

  • Hallo Gemeinde,

    ich möchte mein osd2web-Display per Script umschalten und eine andere URL mit meiner Webcam aufrufen. Grundsätzlich funktioniert meine Idee, aber die URL die ich mit curl aufrufe wird nach dem ersten vorhandenen '&' abgeschnitten...


    So lautet die URL:


    h-ttp://192.168.--.--/zm/cgi-bin/nph-zms?monitor=1&user=USER&pass=PASSWORT


    und aufgerufen wird:


    h-ttp://192.168.--.--/zm/cgi-bin/nph-zms?monitor=1


    Kann mir von Euch jemand sagen wie ich den Aufruf ändern muß damit die URL vollständig aus dem Script heraus übergeben wird?


    EDIT: Lösung Beitrag #10 von rell

    Einmal editiert, zuletzt von Taipan ()

  • Ich habe bereits ausprobiert die '&' durch '%26' zu ersetzen - ohne Erfolg...

  • Kannst du mal dein Script als Code formatiert posten, damit man es lesen kann?

    Ist das oben das, was du nutzt? So richtig Sinn macht es nämlich nicht...


    Und warum alle immer ihre privaten LAN Adressen ausradieren, habe ich bis heute nicht verstanden ;)

  • Hast ja Recht...

  • Ich bin jetzt kein bash quoting profi, aber ich würde es mal mit Anführungszeichen probieren und z.B. mal nach "bash quoting" oder "bash ampersand curl" suchen... oder https://www.gnu.org/software/b…al/html_node/Quoting.html lesen...


    Wenn ich die Logik verstanden habe, ist in Zeile 14 auch noch ein Tippfehler :)

  • Also das zweite ? in Zeile 14 ("index.html?onlyView=1?") ist schon mal sicher falsch.
    Sind das nicht überhaupt bei fast jedem Aufruf etwas zu viele ? für EINE Url?
    Der Aufruf kann doch manuell im Browser auch nicht funktionieren. Oder bin ich da jetzt falsch gewickelt?

    MyVDR: yaVDR-Ansible (Ubuntu 20) - softhddevice-openglosd (ffmpeg 2.8) - epgd/epg2vdr - skindesigner estuary4vdr (adaptiert) - 1920x1080@50 Hz | kodi 18 - inputstream + amazon vod
    Aerocube M40 | 300W | ASRock H61M-GE | Intel G530 | Asus ENGT520 | 2 x TT-budget S2-3200 | ASRock Smart Remote (CIR) | 4 GB RAM | 120 GB SSD | 3 TB HDD

  • Alle Zeichen, die die Bash interpretiert (z.B. ? und &) müssen escaped werden, also mit Backslash davor oder gleich den ganzen String in Anführungszeichen setzen, um die Bash vom Interpretieren abzuhalten.

    Warum alle curl Befehle aber im Hintergrund ausgeführt werden sollen (wegen des & am Ende) erschließt sich mir nicht (dauern die sooo lange?), außerdem verwirrt die zusätzliche Einrückung der curl-Befehle.

  • davie2000

    doch, die URL`s sind schon korrekt und funktionieren auch. Die zweite ist der Aufruf von osd2web ohne Steuerungsmöglichkeit - sprich mit Parameter "?onlyView=1" und das stammt aus der README. An dritter Position wird das Webcambild aus zoneminder geladen...


    FireFly

    Ziel war es über eine Taste mehrere Zustände zu togglen. Das funktioniert bisher mit 3 Zuständen auch. jetzt mit den 5 leider nicht mehr...

    Kannst du mir sagen wie es aussehen müßte um alle 5 Zustände nacheinander per Tastendruck durchzuschalten?

  • Nach meinem Verständnis sollte es so aussehen:

    Deine drei elif [ -e $TOGGLE ]; then sehen merkwürdig aus...

  • shellcheck sagt:

    Code
    Line 7:
    if [ ! -e $TOGGLE* ]; then
              ^-- SC2144 (error): -e doesn't work with globs. Use a for loop.

    Mit einer for-Schleife müsste das ganz gut gehen

  • rell

    Du bist mein Tagesheld ;) - läuft Perfekt. Ich danke Dir :thumbup:

  • Taipan

    Hat den Titel des Themas von „URL per Script übergeben schlägt fehl“ zu „[GELÖST] URL per Script übergeben schlägt fehl“ geändert.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!