0

次のように、expect を使用して sftp セッションを生成しています。

(わかりやすくするために多くのコードが省略されていますが、リスクは理解しています...)

#!/opt/csw/bin/expect -f

<snip>

spawn sftp $user@$host 

set rez [connect $passw]
if { $rez == 0 } {
  send "cd $location\r"
  set timeout -1
  send "ls -l\r" 
  send "quit\r"
  expect eof
  exit 0
}
puts "\nError connecting to server: $host, user: $user and password: $passw!\n"
exit 1

これはうまくいきます。

具体的な質問は、 send "ls -l\r"コマンドの結果をファイルに取り込む方法です。

4

1 に答える 1

0

あなたの後にあなたは何かsend "ls\r"をすべきです。expectステートメントの後expect、変数$expect_out(0,string)には必要な出力が含まれます。実際のコマンド文字列とそれに続くプロンプトを解析する必要があります. http://docs.activestate.com/activetcl/8.5/expect4win/でいくつかの例を見つけることができます

于 2012-08-31T21:14:36.683 に答える