微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在expect脚本中获取多行输出

如何解决在expect脚本中获取多行输出

我在文件 test.sh 中有以下代码,它输出目录中的文件列表:

log_user 0
spawn sftp -oPort=22 username@hostname
expect "password:"
send "password123\n"
set prompt "sftp>";
set command "ls -l upload/External/*";
expect "$prompt"    ;# wait for prompt
send   "$command\r" ;# send command
expect "$command\r" ;# discard command echo
expect -re "(.*)\r" ;# match and save the result
puts "$expect_out(0,string)"
send -- "exit\r"
expect eof

但是在执行 /usr/bin/expect test.sh 后,我只得到一行结果:

drwxrws---    0 300096661 300026669     4096 Apr 13 19:48 upload/External/file1.csv

我尝试将 puts 命令更改为 puts "$expect_out(buffer)" 但它仍然相同。我期待该目录中存在所有 5 个文件

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。