Shell-Script
使用通用 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
?
也許您將 shell 腳本與 kermit 腳本混淆了。
kermit
使用與 shell 完全不同的語言。此處對其進行了描述。特別是,您可以使用\%1
arg 1 等的語法訪問腳本的參數。所以把你的第二行改成set port /dev/ttyUSB\%1
如果您的 kermit 與我的相似(ckermit 9.0),那麼您還必須使用額外的第一個參數執行腳本
--
,例如:./test.script -- 8
如果您不想這樣做,請將第一行替換為 kermit 的絕對路徑,然後您可以使用該
+
標誌,例如:#!/usr/bin/kermit +