Thread system() in Perl mit multiplen Argumenten (15 answers)
Opened by LordK at 2016-07-03 14:59

Linuxer
 2016-07-03 21:12
#184996 #184996
User since
2006-01-27
3891 Artikel
HausmeisterIn

user image
Wie der Dokumentation zu entnehmen ist, nimmt Perldoc:perlfunc system eine Argumentliste an.

Wenn die Liste mehr als ein Argument hat, wird das erste Listenelement als Programm aufgerufen und bekommt die weiteren Elemente als Argumente übergeben.

Wenn die Liste nur ein Element hat, wird dieses auf Shell-Sonderzeichen untersucht und wenn es davon welche gibt, an eine Shell zur Interpolation übergeben, Wenn keine Sonderzeichen gefunden wurden, wird der String gesplittet und dann die resultierende Liste verarbeitet.

Mehr Details sind bitte der perldoc direkt zu entnehmen.


Ich würde ebenso die Shell-Interpolation vermeiden und nach Möglichkeit immer das Kommando mit seinen Argumenten als Array aufbauen und dieses übergeben.


Ansonsten schauen mir die von Dir genannten Argumente ebenfalls seltsam aus und die Vermutung liegt wirklich nahe, dass da interaktive Eingabe versucht wird. Das wird so direkt nicht funktionieren. Da ist der Tipp für IPC::Open2 schon gut.
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread system() in Perl mit multiplen Argumenten