Подключение к порту с использованием общего сценария kermit

Я написал следующее в сценарии kermit для подключения к моему серийному устройству:

 #!/usr/bin/env kermit set port /dev/ttyUSB8 set speed 115200 set carrier-watch off set flow-control none set prefixing all set input echo on 

Это хорошо работает. Теперь я хочу сделать это универсальным скриптом и хотел бы получить информацию от пользователя, какой порт он хочет подключить. Итак, я думал, что принимать входные данные, поскольку аргумент командной строки – лучший способ сделать. И я изменил это следующим образом:

 #!/usr/bin/env kermit port_num="/dev/ttyUSB"+$1 set port port_num set speed 115200 set carrier-watch off set flow-control none set prefixing all set input echo on 

Но, я получаю следующую ошибку:

 user4@user-pc-4:~/Scripts$ ./test.script 8 ?Not a command or macro name: "port_num="/dev/ttyUSB"+$1" File: /home/Scripts/test.script, Line: 2 port_num ?SET SPEED has no effect without prior SET LINE "8" - invalid command-line option, type "kermit -h" for help 

Я попытался заменить

 port_num="/dev/ttyUSB"+$1 

с

 port_num="/dev/ttyUSB$1" 

также. Это тоже не сработало. Я получаю

 user4@user-pc-4:~/Scripts$ ./test.script 8 ?Not a command or macro name: "port_num="/dev/ttyUSB$1"" File: /home/Scripts/test.script, Line: 2 port_num ?SET SPEED has no effect without prior SET LINE "8" - invalid command-line option, type "kermit -h" for help 

В моем втором скрипте есть очевидный недостаток. Как я могу заставить скрипт принять вход пользователя и подключиться к последовательному порту с помощью kermit ?

One Solution collect form web for “Подключение к порту с использованием общего сценария kermit”

Возможно, вы запутываете сценарии оболочки с помощью скриптов kermit. kermit использует совершенно другой язык для оболочки. Это описано здесь . В частности, вы можете получить доступ к аргументам скрипта с синтаксисом \%1 для arg 1 и так далее. Так что измените вторую строку на

 set port /dev/ttyUSB\%1 

Если ваш kermit похож на мой (ckermit 9.0), вы также должны запустить свой скрипт с дополнительным первым аргументом -- например:

 ./test.script -- 8 

Если вы предпочитаете не делать этого, замените первую строку абсолютным путем на kermit, а затем вы можете использовать флаг + , например:

 #!/usr/bin/kermit + 
  • Передача имени файла скриптам с функцией автозаполнения
  • Измените файл SVG на основе информации в файле CSV
  • Вставить текст в определенные строки файла? со специальными символами
  • Какова полезность команды: в сценариях оболочки, учитывая, что она явно ничего не делает?
  • Выполнение команды оболочки из PHP с помощью shell_exec
  • Линия Shebang для «run with $ SHELL»
  • строка в файле как переменная
  • Сценарий, вызываемый .bashrc с «exit», предотвращает вход в систему
  • Как переименовать файлы и преобразовать datestamp из DD-MM-YYYY в YYYY-MM-DD?
  • статистика не работает с пробелами?
  • Как проверить, соответствует ли имя файла шаблону?
  • Interesting Posts

    Применение одного патча к файлам в нескольких каталогах

    проблемы с загрузкой Ubuntu : метод ACPI _BQC, не может определить начальную яркость

    Найти, какие файлы в папке не известны менеджеру пакетов apt

    Заменить колонку с результатом команды

    Почему эта команда для копирования файлов в цикле for работает в bash, но не в zsh?

    Как перенаправить туннель SSL VPN через HTTP CONNECT-прокси, используя iptables?

    Команда ведет себя по-разному при сохранении в файле * .sh

    Позволяет шифровать для частного домена?

    Служба Systemd, запрашиваемая несколькими целями

    Как поместить три тонкие страницы в PDF-страницу формата А4?

    Сервер терминалов (ser2net) для настройки нового коммутатора HP procurve

    Как параметр systemd Type влияет на запуск других устройств?

    Безопасно ли рекурсивное сжатие с помощью tar, gzip и pigz?

    Буферизованные файлы ограничены размером 1 ГБ

    Kickstart с использованием только SAN-дисков

    Linux и Unix - лучшая ОС в мире.