![Запись данных в файл и последовательный порт — можно ли использовать tee?](https://rvso.com/image/23960/%D0%97%D0%B0%D0%BF%D0%B8%D1%81%D1%8C%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%20%D0%B2%20%D1%84%D0%B0%D0%B9%D0%BB%20%D0%B8%20%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9%20%D0%BF%D0%BE%D1%80%D1%82%20%E2%80%94%20%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%20%D0%BB%D0%B8%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20tee%3F.png)
Я пытаюсь получить входные данные из последовательного порта и записать их в файл, а затем прочитать файл и отправить его обратно через последовательный порт на хост-компьютер. Коллега предложил использовать команду "tee", но я не могу найти хороший пример/не могу понять эту команду. Возможно ли сделать это с помощью "tee"? похоже, что tee может выполнять только одну команду, например, перенаправить файл в другое место, но не перенаправить порт, затем записать в документ, затем прочитать документ и затем отправить его через порт. Или я просто не понимаю основ команды "tee".
решение1
Команда tee
записывает ввод в стандартный вывод, а также в файл одновременно. Короткий пример:
$ echo "Hi there..."|tee -a hi.txt
Hi there....
$cat hi.txt
Hi there....
В приведенном выше примере он представляет текст в STDOUT и записывает его в hi.txt
. Другой пример может быть
$cat hi.txt|tee -a final.txt
Hi there.....
$cat final.txt
Hi there....
Итак, рассматривая оболочку bash, ваш пример может быть таким:
$cat ./serial-port|tee -a <filename>
Итак, если последовательный порт — 20002, то приведенная выше команда будет выглядеть так:
$cat $serial-port|tee -a serial.txt
20002
$cat serial.txt
20002