Andreas: SHELL Ausgabe in Variable umleiten/ Frage zu Pipes

Hallo!
ich überlege gerade, wie ich die Ausgabe eines SHELL Befehls, den ich mit system() einbinde in eine Variable(in PHP) umleiten kann. Soll ein String sein, nicht ein Array wie bei exec(). Wenn das nicht geht, wie mache ich am einfachsten aus einem einfachen array, den exec() erzeugt einen String? Was ist mit Zeilenumbrüchen - gehen die dabei verloren?
2. Frage ist zu Pipes(|), kann ich für jeden Teil der durch eine Pipe vom anderen getrennt ist kpl.  alle seine Optionen verwenden, halt genau so wie alleine in der Shell, halt bis auf Eingabe und Ausgabe, die ja jeweils nur beim 1. und letzen Teil relevant sind, oder?

And dieser Stelle schonmal vielen Dank an Achim Schrepfer für seinen wirklich gelungenen Featured Artikel 'Linux für Webworker' http://aktuell.de.selfhtml.org/artikel/server/linux/index.htm
war sehr hilfreich!

Grüße
Andreas

  1. Hoi,

    ich überlege gerade, wie ich die Ausgabe eines SHELL Befehls, den
    ich mit system() einbinde in eine Variable(in PHP) umleiten kann.

    Bei 'system()' wohl gar nicht. Aber dafuer gibt es die Backticks:

    $text = befehl;

    Mehr dazu unter

    http://www.php.net/manual/en/language.operators.execution.php

    1. Frage ist zu Pipes(|), kann ich für jeden Teil der durch eine
      Pipe vom anderen getrennt ist kpl.  alle seine Optionen
      verwenden,

    Ja, natuerlich. Ich verwende z. B. oft sowas wie

    ps ax|grep irgendwas|grep -v grep

    Gruesse,
     CK

    1. Holladiri

      Bei 'system()' wohl gar nicht.

      Jep. system() ist ne Laber-Funktion und gibt grundsätzlich alles aus, selsbt wenn man versucht, sie mit einem vorangestellten "@" zum Schweigen zu bringen ...

      Aber dafuer gibt es die Backticks:

      $text = befehl;

      Anstelle derer kann er natürlich auch shell_exec() verwenden.
      http://www.php.net/manual/en/function.shell-exec.php
      Die ist aber identisch zu den Backticks.
      Ich mag sie nur lieber, weil das ganze irgendwie ... hm ... "geordneter" ausschaut.

      Ciao,

      Harry

      1. Hallo!
        Vielen Dank! Daran hatte ich gar nicht gedacht, aber das ist ja perfekt, obwohl ich im Augenblick lieber versuche, die kpl. Aktion

        (mysqldump|gzip|gpg -e > output.gpg)

        über die SHELL abzuwickeln. Mein Problem ist lediglich der letzte Schritt, und zwar bekomme ich die Datei nicht verschlüsselt
        http://forum.de.selfhtml.org/?m=75285&t=13530

        Vielleicht habt Ihr ja nen kleinen Tipp für mich, da ich da einfach nicht weiter komme :-(

        Viele Grüße
        Andreas