2011-07-03 5 views
0

私はこのような期待ファイルを持っています。私は、1,2,3または4の値を送信できるようにしたい期待ファイル内の変数

expect myfile.exp 

を使用してスクリプトが期待したファイル内の変数の概念があります呼び出しますか?

expect -exact "> " 
sleep .1 
send -s -- "1\r" 
expect -exact "> " 
sleep .1 
# This prompt can take values 1, 2, 3 or 4 
send -s -- "1\r" 
# I want to replace "1\r" above with one of the 4 possible values at runtime 
expect -exact "> " 
sleep .1 
send -s -- "1\r" 

答えて

1

ソリューションは、2ここで

expect -f myfile.exp 2 3 1 

コマンドライン引数を使用することですが渡される引数です。引数はexpファイルで次のように処理されます

set var1 [lrange $argv 0 0] 
set var2 [lrange $argv 1 1] 
set var3 [lrange $argv 2 2] 
expect -exact "> " 
sleep .1 
send -s -- "1\r" 
expect -exact "> " 
sleep .1 
# This prompt can take values 1, 2, 3 or 4 
# Original code 
# send -s -- "1\r" 

# Modified code 
send -s -- "${var3}\r" 

expect -exact "> " 
sleep .1 
send -s -- "1\r" 
+0

'[lrange $ argv 0 0]'ではなく '[lindex $ argv 0]'などを使ってください。 –

関連する問題