2016-05-31 44 views
0

debugコマンドを実行してmyコマンドの出力をファイルに記録しています。log_fileコマンドを試しましたが、出力を記録しませんでした。 :log_fileコマンドがExpectスクリプトのコマンドの出力をログに記録しない

log_file -a gdb.txt 
send "~/debugulator.sh $file mns20\r" 
log_user 0 
expect -re {DSP.*0x[0-9][0-9][0-9][0-9]} 
log_user 1 
send_log $expect_out(0,string) 
log_file 

しかし、私はgdb.txt開いたときに、正確に、私は私が使用している期待のwrong.Theバージョンをつもりは5.26.0

UPDATEここで誰かが私に教えinside.Can、何もありません これは、私が試していたコードの他の部分です...それはまだ仕事をしません。私はexp_internal 1 cを追加した後に出力を掲示しましたommand..Theコードは以下の通りである:

spawn telnet 10.1.1.2 
expect "Login:" 
send "xyz\r" 
expect "Password:" 
send "Nxyz1\r" 
expect "xyz:/home/xyz>" 
send "cd /sonus/support/GSX-[lindex $argv 0]\r" 
log_file myfile.log 
send_log "this is in the log file \n" 
log_file 
interact 

OUTPUT spawn telnet 10.1.1.2parent: waiting for sync byte parent: telling child to go aheadparent: now unsynchronized from child spawn: returns {17179}

`expect: does "" (spawn_id exp6) match glob pattern "Login:"? no` 
`Trying 10.1.1.2...` 

`expect: does "Trying 10.1.1.2...\r\n" (spawn_id exp6) match glob pattern "Login:"? no` 
`Connected to 10.1.1.2.` 
`Escape character is '^]'.` 

`expect: does "Trying 10.1.1.2...\r\nConnected to 10.1.1.2.\r\nEscape  character is '^]'.\r\n" (spawn_id exp6) match glob pattern "Login:"? no` 


`SunOS 5.9` 


`expect: does "Trying 10.1.1.2...\r\nConnected to 10.1.1.2.\r\nEscape character is '^]'.\r\n\r\n\r\nSunOS 5.9\r\n\r\r\n\r" (spawn_id exp6) match glob pattern "Login:"? no 
login: xyz\r` 
`expect: does "Trying 10.1.1.2...\r\nConnected to 10.1.1.2.\r\nEscape character is '^]'.\r\n\r\n\r\nSunOS 5.9\r\n\r\r\n\rlogin: " (spawn_id exp6) match glob pattern "Login:"? no` 
`expect: timed out` 
`send: sending "xyz\r" to { exp6 }` 

`expect: does "Trying 10.1.1.2...\r\nConnected to 10.1.1.2.\r\nEscape character is '^]'.\r\n\r\n\r\nSunOS 5.9\r\n\r\r\n\rlogin: " (spawn_id exp6) match glob pattern "Password:"? no 

xyz`

`expect: does "Trying 10.1.1.2...\r\nConnected to 10.1.1.2.\r\nEscape character is '^]'.\r\n\r\n\r\nSunOS 5.9\r\n\r\r\n\rlogin: xyz\r\n" (spawn_id exp6) match glob pattern "Password:"? no` 
`Password:` 
`expect: does "Trying 10.1.1.2...\r\nConnected to 10.1.1.2.\r\nEscape character is '^]'.\r\n\r\n\r\nSunOS 5.9\r\n\r\r\n\rlogin: xyz\r\nPassword: " (spawn_id exp6) match glob pattern "Password:"? yes` 
`expect: set expect_out(0,string) "Password:"` 
`expect: set expect_out(spawn_id) "exp6"` 
`expect: set expect_out(buffer) "Trying 10.1.1.2...\r\nConnected to 10.1.1.2.\r\nEscape character is '^]'.\r\n\r\n\r\nSunOS 5.9\r\n\r\r\n\rlogin: xyz\r\nPassword:"` 
`send: sending "Nxyz1\r" to { exp6 }` 

`expect: does " " (spawn_id exp6) match glob pattern "xyz:/home/xyz>"? no` 


`expect: does " \r\n" (spawn_id exp6) match glob pattern "xyz:/home/xyz>"? no` 
`Last login: Tue May 31 05:10:20 from 10.253.6.98 
/home/xyz/.aliases: No such file or directory.` 
`[1]slate:xyz:/home/xyz>` 
`expect: does " \r\nLast login: Tue May 31 05:10:20 from 10.253.6.98\r\n/home/xyz/.aliases: No such file or directory.\r\n\u001b]0;[slate:]/home/xyz\u0007[1]slate:\u001b[1mxyz\u001b[m:/home/xyz> " (spawn_id exp6) `match  glob pattern "xyz:/home/xyz>"? no 
`expect: timed out` 
`send: sending "cd /sonus/support/GSX-5\r" to { exp6 }` 
`tty_raw_noecho: was raw = 0 echo = 1` 
`spawn id exp6 sent <c>` 
`cspawn id exp6 sent <d /sonus/support/GSX-5\r\r\n\u001b]0;[slate:]/sonus/support/GSX-5\u0007[2]slate:\u001b[1msdwarampudi\u001b[m:/sonus/support /GSX-5> >` 
`/sonus/support/GSX-5` 
`[2]slate:xyz:/sonus/support/GSX-5>` 
+0

'exp_internal 1'を追加し、出力を – Dinesh

+0

と共有して診断をチェックしますが、log_fileコマンドには向いていません。 – john

+0

私はこのような単純なものを試してみましたが... 'log_file myfile.log send_log"これはログファイルにあります。\ n " log_file'これはログに記録されていません... – john

答えて

0

あなたのプロンプトがパターンマッチが失敗する原因となっているカラーコードを持っている:私は、リモートホストへのSSHとき

expect: does "...slate:\u001b[1mxyz\u001b[m:/home/xyz> " (spawn_id exp6) `match  glob pattern "xyz:/home/xyz>"? no 
# .................................^^^^^^^^........................................................^^^^^^^^^^^^^^ 

は多くの場合、私がやる最初の事は/リモートシェルは、SH/kshのであると仮定すると(ありますbashが)一致するのは簡単です何かにプロンプ​​トを設定します。実際に

spawn ssh remotehost 
# ... password stuff 
# now, set the prompt 
send "PS1='>'\r" 
expect -re {>$} # use this to match the prompt from now on 

、あなたはあなたの迅速なマッチングを簡素化するだけです:あなたのプロンプトがそう、>とスペースで終了します。

expect -re {> $} 
+0

ok cool..iでしたが、ログファイルはどうでしたか?ロギングの権利とは何の関係もありません。 – john

関連する問題