Я намагаюся написати сценарій, який з'єднує та запускає команду на / dev / ttyUSB0 після цього отримує вихід.
screen -d -m 'SCREEN COMMAND' -L /dev/ttyUSB0
Але це не створює вихідний файл. Як я можу вирішити це питання? Будь-які ідеї?
Я намагаюся написати сценарій, який з'єднує та запускає команду на / dev / ttyUSB0 після цього отримує вихід.
screen -d -m 'SCREEN COMMAND' -L /dev/ttyUSB0
Але це не створює вихідний файл. Як я можу вирішити це питання? Будь-які ідеї?
Відповіді:
screen
добре, щоб ваш термінальний сеанс був відключений. Однак він не був розроблений для автоматичного запуску команд на терміналах.
Для цього був розроблений ще один інструмент - expect
.
expect
дозволяє сценарій взаємодії з людиною з програмами, що працюють на терміналі.
Це потужний інструмент, але це ще одна мова скриптів, яку слід вивчити, і може бути трохи нудною. Якщо ви знайомі з Perl, модуль Perl Expect може заощадити багато зусиль (також можна очікувати модулів для інших мов сценарію, таких як Python).
Ще одна примітка. У вашому випадку, здається, /dev/ttyUSB0
це серійний USB-пристрій, який може підключитися або відключитися в будь-який час. Якщо ви хочете автоматично підтримувати взаємодію з цим інтерфейсом USB-послідовного перегляду, ви можете розглянути можливість перегляду цього пристрою, щоб він з’явився / зникнув і знову підключився автоматично (скажімо, в сценарії Perl), або додати правило udev (під /etc/udev/rules.d
), яке автоматично запустить ваш програма підключення як новий пристрій USB.