GNU/Linux >> Linux の 問題 >  >> Linux

シェルスクリプトのコマンドラインからExpectに引数を渡す方法

#!/usr/bin/expect
set username [lindex $argv 0]
set password [lindex $argv 1]
log_file -a "/tmp/expect.log"
set timeout 600
spawn /anyscript.sh
expect "username: " { send "$username\r" }
expect "password: " { send "$password\r" }
interact

引数から読み取りたい場合は、次の方法で簡単に実現できます

set username [lindex $argv 0];
set password [lindex $argv 1];

そしてそれを印刷してください

send_user "$username $password"

そのスクリプトは印刷されます

$ ./test.exp user1 pass1
user1 pass1

デバッグモードを使用できます

$ ./test.exp -d user1 pass1

より良い方法は次のとおりです:

lassign $argv arg1 arg2 arg3

ただし、メソッドも同様に機能するはずです。 arg1 を確認してください が取得されます。たとえば、send_user "arg1: $arg1\n" の場合 .


Linux
  1. Linuxシェルのコマンドラインエイリアス

  2. コマンドの出力をシェル変数に割り当てる方法は?

  3. コマンドライン引数をBashスクリプトに渡しますか?

  1. コマンドライン引数をシェルスクリプトに渡す方法は?

  2. ファイルの内容をコマンドラインパラメータとして渡す方法は?

  3. コメントされたコマンドの最後の引数にアクセスする方法は?

  1. 6 Expectスクリプトのコマンドライン引数の例

  2. コマンド ラインから任意の場所で実行するスクリプトをインストールするにはどうすればよいですか?

  3. Linux で GDB を起動するときにコマンドライン引数を渡すにはどうすればよいですか?