2016-12-10 2 views
1

Ich möchte Prozessfortschritt Wert der diskutil Befehl erhalten, wenn zerodisk auf MacOS.Redirect die Terminal-dynamische Ausgabe in eine Datei

Ich betreibe unter Befehl auf Terminal:

diskutil zerodisk disk2 

Und es Ausgang mit dem Fortschritt Wert:

Started erase on disk2 
    [ - 0%..10%......................................... ] 15% 
    ... 

Aber wenn ich ouput die Ergebniszeichenfolge mit dem Befehl Datei:

diskutil zerodisk disk2 > output.txt 

Der Inhalt der Datei ouput.txt hat keinen Fortschrittswert:

Started erase on disk2 
    Finished erase on disk2 

Kann mir jemand sagen warum? und gibt es eine Möglichkeit, den Löschfortschrittswert zu erhalten?

+0

Schreib es auf STDERR? Versuchen Sie es mit 'diskutil zerodisk disk2> output.txt 2> & 1'. Ich denke, dass es für Fortschrittsbalken wie diese die gesamte Zeile rückgängig machen und dann neu zeichnen kann. Also, es schreibt, dann löscht, dann schreibt und löscht dann ... – varlogtim

Antwort

0

Die Umleitung von E/A in der Shell ändert das Verhalten vieler Anwendungen. Verwenden Sie script die gesamte Ausgabe an das Terminal ohne Störung zu erfassen:

script 
diskutil zerodisk disk2 
exit 

Die Ausgabe in einer Datei namens typescript sein wird. Sie können, dass die Verwendung ändern script command-line arguments z.B.

script redirect.txt diskutil zerodisk disk2 

Das resultierende redirect.txtalle Zeichen an das Endgerät gesendet, einschließlich der Wagenrücklauf enthält.

+0

Es hat funktioniert! Ich danke dir sehr! – DangNguyen