Я пытаюсь написать скрипт, который подключается и запускает команду на /dev /ttyUSB0 после того, как получит вывод.
screen -d -m 'SCREEN COMMAND' -L /dev/ttyUSB0
Но это не создает выходной файл. Как я могу решить эту проблему? Есть идеи?
Я пытаюсь написать скрипт, который подключается и запускает команду на /dev /ttyUSB0 после того, как получит вывод.
screen -d -m 'SCREEN COMMAND' -L /dev/ttyUSB0
Но это не создает выходной файл. Как я могу решить эту проблему? Есть идеи?
Попробуйте pyserial
библиотеку python. Я думаю, что вы можете решить это с помощью этой библиотеки. Вы можете найти учебник здесь
screen
хорош для того, чтобы сеанс терминала запускался отдельно. Однако он не был предназначен для автоматического запуска команд на терминалах.
Для этого был разработан еще один инструмент - expect
.
expect
позволяет сценарий взаимодействия человека с программами, запущенными на терминале.
Это мощный инструмент, но он также является еще одним языком сценариев для изучения и может быть немного утомительным. Если вы знакомы с Perl, модуль Perl Expect может сэкономить вам много усилий (есть также ожидаемые модули для других языков сценариев, таких как Python).
Еще одна заметка. В вашем случае кажется, что /dev/ttyUSB0
- это устройство с последовательным интерфейсом через USB, которое может подключаться или отключаться в любое время. Если вы хотите автоматически поддерживать взаимодействие с этим последовательным интерфейсом через USB, вы можете рассмотреть возможность наблюдения за тем, чтобы это устройство появлялось / исчезало и автоматически подключалось (например, в скрипте Perl), или добавить правило udev (в /etc/udev/rules.d
), который автоматически запустит вашу программу-обработчик при подключении нового USB-устройства.