Thread Linux: Ausgabe von system() in Datei umleiten (16 answers)
Opened by odium at 2010-09-23 10:27

betterworld
 2010-09-23 18:22
#141511 #141511
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Das Verwenden von mehreren Argumenten bei system() ist im Allgemeinen sicherer, weil man da verhindert, dass alle Strings von der Shell interpretiert werden. Dumm ist nur, wenn man genau das braucht, wie in dem Fall von ">", weil man dann leider nicht mehr dafuer sorgen kann, dass der Rest des Befehls nicht auch von der Shell durchgekaut wird.

Eine Moeglichkeit ist, dass man die Umleitung selbst (also ohne Shell) macht, so wie torsten es vorfuehrt.

Dann muss man noch erwaehnen, dass es haufenweise Module im CPAN gibt, die solche Aufgaben erleichtern.

Warum moechtest Du die Ausgabe umleiten? Um die Datei danach gleich in Perl weiterzuverarbeiten? In dem Fall kann man die Ausgabe leicht abfangen, indem man eine Pipe oeffnet oder die Module CPAN:IPC::System::Simple oder CPAN:IO::CaptureOutput benutzt. Das erste Modul benutzt Pipes, das zweite benutzt temporaere Dateien.

Wenn es wirklich in eine Datei gehen muss fuer spaetere Benutzung, kann man z. B. CPAN:IPC::Run benutzen. Das ist ein recht umfangreiches Modul mit einer etwas gewoehnungsbeduerftigen API, aber es kann bestimmt Dein Problem loesen.
Last edited: 2010-09-23 18:23:56 +0200 (CEST)

View full thread Linux: Ausgabe von system() in Datei umleiten