Intereting Posts
могут ли пакеты, помеченные Debian / Ubuntu, быть установлены в Linux Mint? Как захватить вывод xxtrace (только) в файл? Как программное обеспечение скомпилировано и перенесено на Ubuntu? X11 плохой доступ с первой попытки, но работа над последовательными попытками symlinking на `.rbenv /`: сколько слишком много? Установка спящего раздела Windows NT NTFS на Linux Mint Разрешение отклонено, когда Ubuntu пытается подключиться к удаленной общей папке Windows В чем разница между DPkg :: post-invoke и DPkg :: post-invoke-success? Показывать результат на другом «экране» и возвращаться в нормальное состояние find: удалить папку и подпапки, но добавить исключение в два файла Какие числовые коды клавиш мне нужно отправить для магической функции sysrq в сеансе VNC? Как ACL вычисляет эффективные разрешения для файла? Ошибки запуска MySQL: ERROR 1005 Как установить HOSTNAME в zsh? Может ли LVM разделять файлы между томами?

Серийный файл – нет добавления

У меня есть Arduino, отправляющий данные через последовательный порт на мой Ubuntu PC. Это работает, поскольку я могу открыть последовательный монитор на ПК и просмотреть данные. Ардуино отправляет одну строку данных каждые 2 секунды. Я хочу перенаправить вывод в текстовый файл на ПК. Я пытался:

(stty raw; cat > /home/me/received.txt) < /dev/ttyUSB2 

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

Я думал, что <vs << позаботится об этом, но, очевидно, я что-то упустил. Может кто-то указать мне верное направление?

Я бы попробовал что-то вроде этого:

 (stty raw; while IFS= read -R line; do printf '%s\n' "$line" > /home/me/received.txt; done) < /dev/ttyUSB2 

Другая возможность – слегка злоупотреблять awk:

 ( stty raw; awk -vf="outfile" '{print >f; close(f)}' )<tty