system.Exec Parameterübergabe unvollständig

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

Antworten
WolfG
Beiträge: 80
Registriert: 20.10.2012, 15:53

system.Exec Parameterübergabe unvollständig

Beitrag von WolfG » 25.12.2012, 14:06

Hi Leute,

wieder mal bastle ich an einem Script das via system.Exec aufgrufen wird.

Dabein bin ich auf folgendes gestoßen:
Der Aufruf des scripts /usr/local/bin/test.sh

Code: Alles auswählen

#!/bin/sh
echo "test.sh: argc=$# argv: $@" 1>>/var/log/test.log 2>&1
Permissions: -rwxr-xr-x 1 root root 69 Dec 25 12:11 test.sh

mit

Code: Alles auswählen

string out; string err;
system.Exec("/usr/local/bin/test.sh v0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16", &out, &err);
erzeugt ein output
test.sh: argc=8 argv: v0 p1 p2 p3 p4 p5 p6 p7
Es werden offensichtlich nicht alle Argumente übergeben.

Wen ich hingegen den Aufruf mit

Code: Alles auswählen

string out; string err;
system.Exec('sh -c "/usr/local/bin/test.sh v0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16" ', &out, &err);
durchführe, sind alle Args übergeben:
test.sh: argc=17 argv: v0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16
Liegt das an der Implementierung von system.Exec?
Gibt's dafür eine Erklärung?


Danke für Tipps
Wolf

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“