Conecte-se a uma porta usando um script genérico do kermit

2

Eu escrevi o seguinte em um script kermit para conectar ao meu dispositivo serial:

#!/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

Ele faz o trabalho muito bem. Agora, eu quero fazer deste um script genérico e gostaria de ter a entrada do usuário que porta ele quer se conectar. Então, eu pensei em tomar a entrada como um argumento de linha de comando é a melhor maneira de fazer. E eu modifiquei o acima da seguinte maneira:

#!/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

Mas recebo o seguinte erro:

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

Eu tentei substituir

port_num="/dev/ttyUSB"+$1

com

port_num="/dev/ttyUSB$1"

também. Que não funcionou também. Eu obtenho o

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

Existe uma falha óbvia no meu segundo script. Como posso fazer o script aceitar a entrada do usuário e conectar-me à porta serial usando kermit ?

    
por skrowten_hermit 31.03.2017 / 07:40

1 resposta

2

Talvez você esteja confundindo scripts de shell com scripts de kermit. kermit usa uma linguagem completamente diferente para o shell. É descrito aqui . Em particular, você pode acessar os argumentos do script com a sintaxe \%1 para arg 1 e assim por diante. Então mude sua segunda linha para

set port /dev/ttyUSB\%1

Se o seu kermit é semelhante ao meu (ckermit 9.0), você também deve executar o seu script com um primeiro argumento extra -- , por exemplo:

./test.script -- 8

Se você preferir não fazer isso, substitua a primeira linha pelo caminho absoluto para executar o kermit e, em seguida, use o + flag, por exemplo:

#!/usr/bin/kermit +
    
por 31.03.2017 / 20:57