使用通用 kermit 脚本连接到端口

使用通用 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

答案1

也许您将 shell 脚本与 kermit 脚本混淆了。kermit使用与 shell 完全不同的语言。描述的是这里。特别是,您可以使用\%1arg 1 等语法访问脚本的参数。所以将你的第二行更改为

set port /dev/ttyUSB\%1

如果您的 kermit 与我的类似(ckermit 9.0),那么您还必须使用额外的第一个参数运行脚本--,例如:

./test.script -- 8

如果您不想这样做,请将第一行替换为 kermit 的绝对路径,然后您可以使用该+标志,例如:

#!/usr/bin/kermit +

相关内容