2016-04-28 2 views
0

У меня есть скрипт, который можно включить сканирование BLE устройства с помощью следующей командысценарий оболочки - Перенаправление делает некоторую информацию потеряли

timeout 10s hcitool lescan 

При выполнении этого сценария (скажем, ble_scan), я могу увидеть близлежащие устройства, показанные на терминал.

Однако, когда я перенаправить его в файл и терминал

./ble_scan | tee test.log 

Я не могу увидеть близлежащие устройства, показанные на экране больше и файл журнала, а также.

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

Вышеупомянутое перенаправление также не помогает, что-то, что я здесь не так ошибаюсь?

+1

Некоторые программы меняют поведение в зависимости от того, является ли stdout трубой или терминалом. Похоже, это и делает. – Jens

+0

@Jens yea, любая идея иметь выходной файл? – user3815726

+0

@Jens жаль, что я только что редактировал вопрос, добавляю таймаут перед hcitool lescan, ответьте, если у вас есть идея. – user3815726

ответ

1

Если команда ведет себя по-разному с выходом файла, вы можете запустить ее в пределах script.

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

Обратите внимание, что файл будет содержать символы, относящиеся к терминалу, такие как возврат каретки, который обычно не записывается в выходные переадресации.

+0

Отметьте, в ble_scan, я использую команду таймаута, чтобы убить hcitool lescan. Я сомневаюсь, что данные были убиты до перенаправления. Есть идеи на это? – user3815726

Смежные вопросы