次のように、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"コマンドの結果をファイルに取り込む方法です。