1

У меня есть следующий скрипт:

for i in {1..16}; do
$wget http://url/$i.jpg -O C:/Users/User/Desktop/Test/
done

Сохраните файл как test.sh и запустите его в Git на windows.

Файлы работают на сервере, но когда я запускаю скрипт, я получаю "Нет такого файла или каталога" ...

Мысли?

2 ответа2

1

Ваш сценарий в основном правильный, если не для символа $ который вы должны удалить, и для имени файла, который вы должны повторить

for i in {1..16}; do
   wget http://url/$i.jpg -O C:/Users/User/Desktop/Test/$i.jpg
done

Действительно, опция -O просит записать имя файла, а не каталог.

-O файл
--output-документ = файл
Документы не будут записаны в соответствующие файлы, но все будут объединены и записаны в файл.

Еще несколько слов
В вашей версии $wget - это переменная, которая никогда не назначается и поэтому пустая.
Результатом команды внутри цикла становится, например,

http://url/1.jpg -O C:/Users/User/Desktop/Test/

это файл, которого нет на вашем жестком диске.

Чтобы исследовать ошибки такого рода, вы можете добавить echo в строку и посмотреть результат, сгенерированный вашим циклом:

for i in {1..16}; do
   echo $wget http://url/$i.jpg -O C:/Users/User/Desktop/Test/
done

это покажет вашу проблему / ошибку.

0

Мой каталог -P не был создан, поэтому на wget не было места для загрузки файлов.

Нужно изменить -O на -P. Добавлено "" для местоположения каталога.

Это сейчас работает

 for i in {1..16}; do
 wget http://url/$i.jpg -P "C:/Users/user/Desktop/Test"
 done

Также необходимо убедиться в правильности форматирования в Notepad++. Изменено преобразование EOL из Windows в Unix.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .