Я хочу сделать сценарий оболочки, который загружает все файлы что область, названная [0-9] [0-9] .png;
например: 00.png 01.png 33.png 91.png и т.д.
files = ???????
for file in files
do
curl ftp://server/${file}
done
Что я должен поместить в файлы =???
Я был бы высоко удивлен, разрешает ли ftp://server/file
протокол подстановочные знаки. Я подозреваю, что необходимо будет выбрать список доступных файлов и выполнить итерации по тем с 2 цифрами.
Однако, если Вы хотите к , генерируют числа 00 к 99 в ударе:
for file in {0..9}{0..9}.png; do ...
Используйте Bash расширение имени файла (использование *
, ?
и []
):
$ ls
00.png 03.png 06.png 09.png 12.png 15.png 18.png 21.png
01.png 04.png 07.png 10.png 13.png 16.png 19.png
02.png 05.png 08.png 11.png 14.png 17.png 20.png
$ files=([0-9][0-9].png)
$ echo "${files[@]}"
00.png 01.png 02.png 03.png 04.png 05.png 06.png 07.png 08.png 09.png 10.png 11.
png 12.png 13.png 14.png 15.png 16.png 17.png 18.png 19.png 20.png 21.png
Это, в отличие от этого {0..9}{0..9}.png
, только расширяется до существующих имен файлов. Таким образом, Вы могли сделать:
files=([0-9][0-9].png) # creates an array
for FILE in "${files[@]}"
do
curl "ftp://server/${FILE}"
done
Или, непосредственно:
for FILE in [0-9][0-9].png
do
curl "ftp://server/${FILE}"
done
seq
печать последовательность чисел. -w
компенсирует ширину путем дополнения продвижением, обнуляет.
files=`seq -w 0 99`
for file in $files
do
curl ftp://server/${file}.png
done