#!/usr/bin/expect -f
spawn /usr/bin/scp -i "/pkg/scripts/myppk.ppk" -P 11111 [email protected]:/OUT/mycsc.csv /manpkg
expect {
expect "*phrase*" {
send "mypassphrase\r"
}
expect "*sword.*" {
send "mypassword\r"
}
}
interact
答案1
您实际上并没有告诉我们出了什么问题,您遇到了什么错误或任何事情,所以这只是一个猜测。我敢打赌问题是您\r
出于某种原因发送的密码和密码末尾带有 。这......对于任何现代系统来说都没有任何意义。过去只有老式 Mac 才使用 .\r
作为行尾字符,现代 Mac 和所有其他 *nix 系统都\n
使用\r\n
.
要在 *nix 系统上执行此操作,您需要将 替换\r
为\n
:
#!/usr/bin/expect -f
spawn /usr/bin/scp -i "/pkg/scripts/myppk.ppk" -P 11111 [email protected]:/OUT/mycsc.csv /manpkg
expect {
expect "*phrase*" {
send "mypassphrase\n"
}
expect "*sword.*" {
send "mypassword\n"
}
}
interact
如果这不能解决您的问题,请编辑您的问题并解释运行它时实际发生的情况。