Я прочитал несколько вопросов по этому поводу, но, похоже, ни один из них не дает правильного ответа на мою проблему. Мне просто нужно написать простой сценарий bash, чтобы получить пару файлов через FTP-соединение.
Обычный сценарий был таким
#!/bin/bash
username="myFTPusername"
password="myFTPpass"
ftp -in hostname <<EOF
quote USER $username
quote PASS $password
lcd mylocaldirectory
cd FTPfolder
get filename
bye
EOF
И я тоже пробовал эту команду, видел Вот
wget -O filename ftp://user:pass@hostname/filename
Но ни один из них не работает. Достаточно хорошо, я могу получить доступ без проблем без скрипта, и мой пользователь и пароль работают нормально. Но когда я пытаюсь подключиться через скрипт или команду wget, я получаю «неверный логин».
Есть ли какие-то ограничения на формат пароля? У него разные персонажи, и один из них - "$". Я только предполагаю, что проблема в сценарии - это знак доллара. Есть идеи решить эту проблему? Что, если я не смогу изменить этот FTP-пропуск?
Возможно, лучше всего использовать wget (или curl). Если ваш пароль содержит метасимволы оболочки (например, «$»), вам нужно будет заключить его в кавычки в командной строке. Например:
wget -O filename 'ftp://user:pass@hostname/filename'
Использование одинарных кавычек запрещает расширение символа '$' внутри строки в кавычках.
Вместо того, чтобы хранить данные аутентификации в скрипте, попробуйте поместить их в ~ / .netrc, это должно обойти любые проблемы, связанные с расширением оболочки символа $ в вашем пароле.