Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
telnet経由でサーバーに接続し、いくつかの認証を行うexpectスクリプトを作成したいと思います。ただし、スクリプトパラメータの使用に問題があります。男に基づいて、私はこれがうまくいくと思っていました:
#!/usr/bin/expect -f spawn telnet $argv1 5038 ...
残念ながら私は戻ってきcan't read "argv1": no such variableます。これをどのように機能させることができますか?
can't read "argv1": no such variable
コマンドライン引数は変数argvのリストとして提供されます。このリストから要素を取得するには、lindexを使用できます。したがって、最初の引数がtelnetのホストである場合は、次のようにします。
spawn telnet [lindex $argv 0] 5038
シェルのシェル提供変数とリストのlindexを参照してください。
$argvは、コマンドラインパラメータを保持するTclリストであり、0から始まるインデックスが付けられています。
$argv
[lindex $argv 0]
can't read "argv0": no such variableprocで$argv0を使用しようとすると、同様のエラーが発生しました。解決策は、を使用してグローバル名前空間から明示的にアクセスすることでした$::argv0。
can't read "argv0": no such variable
$::argv0