2016-04-28 6 views
0

ich einen Shell-Skript, dieShell-Skript - Umleitung macht einige Informationen verloren

timeout 10s hcitool lescan 

dieses Skript ausgeführt wird (sagen ble_scan) mit dem folgenden Befehl ble Gerätesuche aktivieren kann, kann ich die Geräte in der Nähe siehe gezeigt Das Terminal.

Allerdings, wenn ich es in die Datei und Terminal umzuleiten

./ble_scan | tee test.log 

Ich kann die Geräte in der Nähe sehen auf dem Bildschirm angezeigt mehr und melden Sie sich als auch Datei.

./ble_scan 2>&1 | tee test.log 

Die obige Umleitung hilft auch nicht, irgendetwas schiebe ich hier falsch?

+1

Einige Programme ändern das Verhalten je nachdem, ob es sich bei stdout um eine Pipe oder ein Terminal handelt. Sieht so aus, als würde das auch. – Jens

+0

@Jens ja, eine Idee, eine Ausgabedatei zu haben? – user3815726

+0

@Jens sorry Ich habe gerade die Frage bearbeitet, Timeout vor hcitool lescan hinzufügen, bitte antworten Sie, wenn Sie eine Idee dazu haben. – user3815726

Antwort

1

Wenn sich der Befehl bei der Dateiausgabe anders verhält, können Sie ihn innerhalb von script ausführen.

script test.log 
#=> Script started, output file is test.log 
./ble_scan 
# lots of output here 
exit 
#=> Script done, output file is test.log 

Hinweis, dass die Datei endgerätespezifischen Zeichen umfassen wird ähnliche Erträge Schlitten normalerweise nicht in Ausgangs Umleitungen erfasst.

+0

Markiere im ble_scan den Timeout-Befehl, um den hcitool lescan zu beenden. Ich bezweifle, dass die Daten vor der Weiterleitung getötet werden. Irgendeine Idee dazu? – user3815726

Verwandte Themen