请问为什么这个不起作用?
#!/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 教程并使用公钥。 - Basile Starynkevitch/usr/bin/expect<<FILETRANSFER
, here you are missing a space before<<
- Jahid/usr/bin/expect -d
命令查看 expect 的操作。 - glenn jackmanexpect <<'FILETRANSFER'
,其中单引号有效地引用了整个 here-doc。 - glenn jackman