2016-08-23 8 views
0

私はCUCMにログインしていますが、正しいコマンドが1つ実行されていますが、期待値では2番目のコマンドを実行できません。 は最初、私たちは次のようにやっている: - ここ予期プログラミング:特定の文字列を期待する方法

send -i $install_id "utils ctl set-cluster mixed-mode\r\n" 
puts "we are hitting yes &&&&&&&&&&" 
expect { 
    -i $install_id -re ".*" { 
     send -i $install_id "y\r" 
     puts "$$$$$$$$$$$$$$$ we are inside...." 
    } 
} 
puts "we are done %%%%%%%%%%" 
return 1 

最初のコマンドsend -i $install_id "utils ctl set-cluster mixed-mode\r\n" sucessfully実行なっているが、それは期待してループ内で行っていません。

最初のコマンドの出力のようなものです: - 私はY与えると入力する必要がどこ

admin:utils ctl set-cluster mixed-mode 
This operation will set the cluster to Mixed mode. Do you want to continue? (y/n): 

この後、カーソルが次の行になり、出力なステートメントは、内部の期待も

を印刷取得されていません
+0

これらのコマンドは詳細モードで実行できます。最初の送信の前に 'exp_internal 1'を追加してください。 –

+0

私はこれらのプログラミングに新しいです...私はちょうどあなたが追加しようとしているものは何ですか – user3388407

+0

あなたは例外的なスクリプトを実行しているのですか? –

答えて

0

私が何かやっていると思います。そのような

expect { 
    -i $install_id 
    -ex "continue? (y/n):" { 
     puts "I FOUND A CONTINUE PROMPT" 
     send -i $install_id "y\r" 
     exp_continue 
    } 
    "$thePrompt" { 
     puts "I FOUND A SYSTEM PROMPT" 
    } 
} 

を、コマンドが終了したらそれだけでexpectことを止めるだろうが、それはトンを対応させていただきますo continueプロンプトが表示され続けます(exp_continueのため)。この場合、-exオプションはリテラル文字列にマッチするので適しています。探しているものに複数の正規表現メタ文字(?())が含まれていると便利です。

もちろん、プロンプトと実際に一致する正しいものは"$thePrompt"です。

+0

が直面している私はuが提案方法を試してみましたが、このエラーを取得: - 予期しないエラーがJavaランタイム環境で検出された #: # #のSIGSEGV(0xb)PC = 0x003ef025で、pid = 24279、tid = 4150630080 # #Java VM:Java HotSpot(TM)クライアントVM(10.0-b23混合モード、linux-x86共有) #問題フレーム: #C [libc.so.6 + 0x13a025] # – user3388407

+0

@ user3388407これは変です。クールな物語、ブロ。 –

+0

これ以外の提案はあります – user3388407

関連する問題