Вместо того, чтобы создавать очень сложный сценарий для сортировки с учетом регистра, вы можете сделать FTP чувствительным к регистру, поэтому вам не нужно этого делать. Обратитесь к справочной странице LFTP для получения подробной информации об опциях. :Проверьте, действительно ли ваша команда LFTP не имеет флага регистра.
-i, --nocase case-insensitive pattern matching
Вы можете передавать папки так, как имена файлов должны быть допустимы на хосте. Добавление более подробной информации о целевом хосте может помочь.
Также я рекомендую проверить, можете ли вы реализовать это решение на основе расширения файла.
LFTP mget ignoring case
*.[cC][sS][vV]
Я уверен, что у вас тоже нет этой проблемы.
Если по-прежнему требуется наличие сценария. Вы можете создать скрипт Python, используя set.
Я заработал, добавив косую черту в переменную цикла,
echo "file: \$i"
Это не null, это пустая строка (не то же самое ).
Проблема, с которой вы столкнулись, заключается в том, что переменная рано раскрывается здесь документом(<<
). Вам нужно, чтобы он был расширен позже, с помощью ssh
. Поэтому избегайте $
, чтобы передать его в ssh
, поставив перед ним \
.