Назад | Перейти на главную страницу

Bash FTP вход в службу Microsoft FTP, недопустимая команда

Это мой сценарий. Как видите, он выполняет только 1 команду (cd /) после подключения к удаленному FTP-серверу. Это очень просто ... но не работает и дает мне "Неверная команда".

Не понимаю почему.

#!/bin/bash

HOST=xxx             #This is the FTP servers host or IP address.
USER=xxx                     #This is the FTP user that has access to the server.
PASS=xxx              #This is the password for the FTP user.

# Call 1. Uses the ftp command with the -inv switches. 
#-i turns off interactive prompting. 
#-n Restrains FTP from attempting the auto-login feature. 
#-v enables verbose and progress. 

ftp -inv $HOST << EOF

# Call 2. Here the login credentials are supplied by calling the variables.

user $USER $PASS

pass

# Call 3. I change to the directory where I want to put or get
cd /

# Call4.  Here I will tell FTP to put or get the file.
#put...

# End FTP Connection
bye

EOF

Это результат:

Connected to [IP]
220 Microsoft FTP Service
?Invalid command
331 Password required for logweb.
230 User logged in.
Remote system type is Windows_NT.
Passive mode on.
?Invalid command
250 CWD command successful.
?Invalid command
?Invalid command
?Invalid command
221 Goodbye.

В «Неверная команда» ошибка из-за тех # линий. В ftp не признает # как префикс комментария.

Если вам нужны комментарии в скрипте, вы можете злоупотребить командой escape to shell ! и следуйте за этим комментарием оболочки:

!# This is comment

Помимо этого, я считаю, что все команды в вашем сценарии выполняются, несмотря на ваше утверждение, что только одна из них:

> user $USER $PASS
< 331 Password required for logweb.
< 230 User logged in.

> cd /
< 250 CWD command successful.

> bye
< 221 Goodbye.