Shell-Script

使用通用 kermit 腳本連接到埠

  • March 31, 2017

我在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

也許您將 shell 腳本與 kermit 腳本混淆了。kermit使用與 shell 完全不同的語言。此處對其進行了描述。特別是,您可以使用\%1arg 1 等的語法訪問腳本的參數。所以把你的第二行改成

set port /dev/ttyUSB\%1

如果您的 kermit 與我的相似(ckermit 9.0),那麼您還必須使用額外的第一個參數執行腳本--,例如:

./test.script -- 8

如果您不想這樣做,請將第一行替換為 kermit 的絕對路徑,然後您可以使用該+標誌,例如:

#!/usr/bin/kermit +

引用自:https://unix.stackexchange.com/questions/354990