Die Frage der Umleitung der Ausgabe eines Befehls wurde bereits oft gefragt, aber ich habe ein seltsames Verhalten. Ich benutze eine Bash-Shell (debian) mit der Version 4.3.30 (1) -Release und versuchte, die Ausgabe in eine Datei umzuleiten, aber nicht alles ist in der Datei geloggt. Die Bin-Datei, die ich zu laufen versucht ist Soße-connectv4.4.1 für Linux (Client von saucelabs, die öffentlich in Internet verfügbar ist)Bash Umleitung Ausgabe in Datei, aber das Ergebnis ist unvollständig
Wenn ich
#sudo ./bin/sc --doctor
führen Sie es zeigte mir eine komplette Linien
druckt:
INFO: bis '23 aufgelöst .42.27.27'
INFO: Lösung 'g2.symcb.com' mit
DNS-Server '10 .0.0.5' ... (gefolgt von anderer Linie)
INFO: 'google.com' ist nicht in Wirten
Info-Datei: URL https://google.com
jedoch erreicht werden kann, wenn ich umleiten den gleichen Befehl in einer Datei mit dem folgenden Befehl
#sudo ./bin/sc --doctor > alloutput.txt 2>&1
und tun
#cat alloutput.txt
die gleichen Befehlsausgabe wird protokolliert, aber veraltet, wie folgend:
INFO: gelöst '23 .42.2me @ mymachine:/opt/$
Es hat unvollständige Linie, und die nächsten Zeilen, die folgt sind nicht einmal geloggt (fehlt).
Ich habe mit >> zum Anhängen versucht, es hat das gleiche Problem. Mit dem Befehl &> alloutput.txt wird auch nicht das ganze Zeug gedruckt. Kann jemand darauf hinweisen, wie man alle Zeilen des obigen Befehls vollständig in die Textdatei einträgt?
UPDATE
Am Ende habe ich verwalten die native Binärlogging verwenden, indem Sie --log alloutput.txt wo es mir vollständig mit dem Ausgang korrekt liefern. Allerdings lasse ich diese Frage offen, wie ich bin immer noch fragen, warum man einige Informationen/Linien verpasst durch eine Umleitung der Ausgabe zu tun
Was ist die Ausgabe von 'cat -v alloutput.txt'? – chepner
@chepner: der Ausgang für den Ausgang "cat -v alloutput".txt ist das gleiche wie wenn die obige Binärdatei ausgeführt und in der Konsole angezeigt wird, es gibt jedoch einige Zeilen, die fehlen (wie im Absatz beschrieben) – heike
Eine andere Sache zu versuchen: Standardfehler und Standardausgabe separat umleiten: './bin/sc> out.txt 2> err.txt'. Ich vermute eine Kombination von './Bin/sc', die CRLF-Zeilenendungen zusammen mit der nicht-deterministischen Mischung von stdout und stderr ausgibt. – chepner