Лучше всего перевести tty в необработанный режим и написать программу, которая отбрасывает символы, пока не увидит начало сообщения, а затем печатает символы, пока не дойдет до конца сообщения. С добавлением «raw» к stty
fgetc()
можно использовать на tty для получения одного символа.
экспромт псевдо:
char = fgetc(serial_port);
if char == START_CHARACTER {
putc(char);
for (i=0;i
Это также можно сделать с помощью sed и необработанного tty, см. этот другой вопрос :https://stackoverflow.com/questions/20943025/how-can-i-get-sed-to-quit-after-the-first-matching-address-range
Вы можете установить скрипт Bash в качестве оболочки пользователя:
chsh -s /path/to/script.sh -u maintenanceuser
Просто дважды -проверьте, что пользователь не сможет выйти из скрипта и получить доступ к оболочке.