Vielleicht lesen die Skripting-Spezialisten, die mir bereits bei meiner Ausgangsfrage sehr gut weitergeholfen haben, noch mit. Sonst mache ich einen neuen Thread auf. Nun geht es um Folgendes (inhaltlich handelt es sich um Geräte aus der Hausautomation, die ich über ein Bash-Skript abfragen und steuern kann). "Normalerweise" kann man Befehle an die Geräte mit einem HTTP-Statement übertragen. Das läuft alles wunderbar, bis darauf, wenn die Geräte Passwort geschützt sind, weil dann ein Username und ein Passwort übergeben werden müssen. Als HTTP-Befehl sähe der Befehl für das Ausschalten so aus:
http://192.168.178.123/cm?user=admin&password=test&cmnd=power%200
%20 ist eine Leerstellenmaskierung. Direkt in einem Terminal eingegeben funktioniert folgende Zeile wunderbar:
curl -s http://192.168.178.123/cm?user=admin\&password=test\&cmnd=power%200
Nur, wenn ich das ganze im einem Skript aufrufe und das Ergebnis in der Variablen result speichern möchte, klappt es nicht
result=$("curl -s http://192.168.178.123/cm?user=admin\&password=test\&cmnd=power%200"). Ein nicht Passwort geschütztes Gerät wird so eingeschaltet und das funktioniert auch im Skript:
result=$(curl -s http://192.168.178.123/cm?cmnd=power%200)
Es muss irgendwie mit dem & im user-passwort-Ausdruck zu tun haben. Wie muss ich das & maskieren, dass es richtig übergeben wird?
Moderiert von rklm:
Abgetrennt von diesem Thema, mit dem diese Frage nichts zu tun hat. Bitte keine Themen entführen - auch nicht Deine eigenen!