有人可以告诉我为什么这不起作用吗?如何使用bash脚本里面的期望
#!/bin/bash
cd /home
touch somefile
/usr/bin/expect<<FILETRANSFER
spawn scp -r -P remoteServerPort somefile remoteServerIP:/home
expect "assword:"
send "MyPassWord\r"
interact
FILETRANSFER
echo "It's done"
它没有给出任何错误,但文件没有传输到远程服务器。我尝试了很多方法仍然找不到任何解决方案。
更好的方法是避免使用'ssh'(也是'scp')键入或发送任何密码。阅读一些ssh教程并使用公钥。 –
'/ usr/bin/expect << FILETRANSFER',在这里你缺少'<<' – Jahid
之前的空格谢谢你的回复。 @ Basile Starynkevitch由于某些原因,我无法使用公钥。 @ Jahid增加了空间,但仍然无法使用。 – derp