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
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);
Es werden offensichtlich nicht alle Argumente übergeben.test.sh: argc=8 argv: v0 p1 p2 p3 p4 p5 p6 p7
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);
Liegt das an der Implementierung von system.Exec?test.sh: argc=17 argv: v0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16
Gibt's dafür eine Erklärung?
Danke für Tipps
Wolf