Start bash mit Option -v erzeugt eine lange Ausgabe an die KonsoleKann bash -v-Ausgabe umgeleitet werden?
$ bash -v
source ~/Dropbox/bin/tim_functions.sh
\#!/bin/bash
...several hundred more lines
Ich möchte die Ausgabe in einer Datei erfassen es leichter durchsuchen zu machen, aber ich habe bash -v 2>&1 > out_bash.txt
und bash -v | tee out_bash.txt
versucht und erfassen nicht die Informationen auf dem Terminalbildschirm in einer Datei. Es ist, als ob die ausführliche Ausgabe weder stderr noch stdout ist. Wie kann das sein?
Kann jemand vorschlagen, die Ausgabe von Bash-V zu erfassen?
Ich habe versucht, Ihren Vorschlag, aber kein Glück - immer noch die Informationen nicht erfassen. Es scheint, dass die Ausgabe von bash -v mit Debug-Informationen zusammenhängt. Und Debuginformationen scheinen weder stderr noch stdout zu sein. Ich fange an zu denken, dass es nicht vom Terminal umgeleitet werden kann. – Tim
Bash ist nicht magisch; alles, was an Ihre tty gesendet wurde, kam aus dem Aufruf 'write()' (oder gleichwertig) von * irgendwo *. Was passieren kann, ist, dass die interaktive Shell selbst die Ausgabe erzeugt, während die Umleitung möglicherweise nur für erzeugte Child-Prozesse gilt. Aus diesem Grund dachte ich, dass das Wrappen einer Ebene und das Hochziehen der Weiterleitung funktionieren könnte. – phs
Wenn Sie jedoch in einer Bash-Sitzung sind und bash -v ausführen, wird ein untergeordneter Prozess (die neue Bash-Sitzung) generiert. Wenn also der Elternprozess nicht die write() -Aufforderung für die Debuginformationen des untergeordneten Elements aufruft, sondern der untergeordnete Prozess selbst write() aufruft, scheint die Terminalinfo dennoch umleitbar zu sein. Aber vielleicht werden so Debug-Informationen erzeugt - der Elternteil überwacht irgendwie die Aktivitäten des Kindes und berichtet darüber. – Tim