我正在尝试做一些真正的、真正简单的事情:在设定的时间从 sftp 站点下载文件。但是,我收到诸如“命令:rm 不存在”或“命令获取不存在”之类的错误,这是垃圾,因为这些命令显然存在。
#!/usr/bin/expect
#remove current version of file
rm -f /home/user/downloads/data/newdata.zip
spawn sftp user@ftpsite.com
expect "password:"
send "PaSsWoRd\n"
expect "sftp>"
get /mycompany/myproject/data/newdata.zip /home/user/downloads/data
expect "sftp>"
send "exit\n"
interact
(base) root@ubuntu:~# ./shellscript.sh
invalid command name "rm"
while executing
"rm -f /home/user/downloads/data/newdata.zip"
或不移除
(base) root@ubuntu:~# sudo ./shellscript.sh
spawn sftp user@sftpsite.com
EFT Server Login - %DATE% %TIME% - Please enter valid credentials to continueEnter password:
Connected to ftpsite.com
sftp> invalid command name "get"
while executing
"get /mycompany/myproject/data/newdata.zip /home/user/downloads/data"
是什么赋予了?为什么我不能得到真正的错误消息 - 我确定 get 和 rm 一个非常好的命令,我可以通过直接从命令行运行它们来验证这一点,它们可以正常工作。