Frage Entfernen Sie die Ausgabe von add-apt-repository


Ich versuche ein Shell-Skript zu schreiben, das automatisch einen LAMP-Stack für mich erstellt. Eine der Zeilen, die ich im Skript habe, ist:

add-apt-repository -y ppa:ondrej/php5-oldstable >> /tmp/output.txt

Aber probiere wie immer folgende Inhalte aus:

gpg: keyring `/tmp/tmpf0k2tr/secring.gpg' created
etc........

Ich möchte, dass es da ist Nein Ausgabe, um auf dem Bildschirm angezeigt werden, wenn ich diesen Befehl ausführen, um dieses PPA zu meinem Repository hinzuzufügen.


4
2017-09-04 22:27


Ursprung




Antworten:


Verwenden Sie die Ausgabeumleitung nach /dev/null und einschließen stderr Ausgabe.

add-apt-repository -y ppa:ondrej/php5-oldstable > /dev/null 2>&1
  • Das 2>&1 wird Bash sagen, dass er umleiten soll stderr zu stdout.
  • Das command > file Strophe wird umgeleitet stdout in diesem Fall zu einer Datei /dev/null.
  • /dev/null ist das schwarze Loch von Linux - Sie können von dort nichts wiederherstellen.

Ergebnis: vollständige stille Ausführung Ihres Befehls.

In Ihrer aktualisierten Frage scheinen Sie alle Ausgaben in einer Datei zu protokollieren. In diesem Fall können Sie einfach anhängen 2>&1 zu deiner aktuellen Zeile:

add-apt-repository -y ppa:ondrej/php5-oldstable >> /tmp/output.txt 2>&1

Dies ist, weil Sie auf die stderr Die Ausgabe wird auf das Terminal gedruckt, das Sie ebenfalls zum Protokoll umleiten müssen (sonst werden Sie alle Fehler übersehen!).


4
2017-09-04 22:34



@Braiam Dies basiert auf dem Befehl, den das OP in seiner Frage gegeben hat. Ich nehme an, es funktioniert für ihn und sein Skript läuft als root Hier. Die Frage ist die Unterdrückung der Ausgabenicht über a nicht arbeitend Befehl. - gertvdijk
"stderr zu stout" ah! Das war der Trick. Ich dachte, alle Ausgaben an die Konsole wären gleich. Danke für die Hervorhebung, dass nicht alle Ausgaben gleich sind. - John Crawford
@gertvdijk erinnern, dass Menschen dazu neigen, kopieren-einfügen, ohne zu wissen, wie, was, wann, wo, etc;). - Braiam