![使用通用 kermit 脚本连接到端口](https://linux22.com/image/108672/%E4%BD%BF%E7%94%A8%E9%80%9A%E7%94%A8%20kermit%20%E8%84%9A%E6%9C%AC%E8%BF%9E%E6%8E%A5%E5%88%B0%E7%AB%AF%E5%8F%A3.png)
我在脚本中编写了以下内容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 完全不同的语言。描述的是这里。特别是,您可以使用\%1
arg 1 等语法访问脚本的参数。所以将你的第二行更改为
set port /dev/ttyUSB\%1
如果您的 kermit 与我的类似(ckermit 9.0),那么您还必须使用额外的第一个参数运行脚本--
,例如:
./test.script -- 8
如果您不想这样做,请将第一行替换为 kermit 的绝对路径,然后您可以使用该+
标志,例如:
#!/usr/bin/kermit +