一般的な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

私の2番目のスクリプトには明らかな欠陥があります。スクリプトがユーザー入力を受け入れてシリアルポートへの接続を使用できるようにするにはどうすればよいですかkermit

ベストアンサー1

おそらくシェルスクリプトとコミットスクリプトを混同しているでしょう。kermitシェルとは全く異なる言語を使用してください。説明するここ。特に、\%1arg 1などの構文を使用してスクリプトの引数にアクセスできます。したがって、2行目を次のように変更します。

set port /dev/ttyUSB\%1

あなたのコミットが私のコミット(ckermit 9.0)に似ている場合は、追加の最初の引数を使用してスクリプトを実行する必要があります--。例:

./test.script -- 8

これを望まない場合は、最初の行をkermitの絶対パスに置き換えて、その+フラグを使用できます。たとえば、次のようになります。

#!/usr/bin/kermit +

おすすめ記事