Зеркальное отражение сайта со смещением

Используйте \0 в качестве разделителя и считайте имена файлов в текущий процесс от порожденной команды, как так:

foo() {
  printf "Hello {%s}\n" "$1"
}

while read -d '' filename; do
  foo "${filename}" </dev/null
done < <(find . -maxdepth 2 -type f -print0)

Что продолжается здесь:

  • read -d '' чтения до следующих \0 байтов, таким образом, Вы не должны волноваться о странных символах в именах файлов.
  • точно так же -print0 использование \0 для завершения каждого сгенерированного имени файла вместо \n.
  • cmd2 < <(cmd1) совпадает с cmd1 | cmd2 за исключением того, что cmd2 выполняется в основной оболочке и не подоболочке.
  • вызов к нечто перенаправляется от /dev/null гарантировать его случайно не читает из канала.
  • $filename заключается в кавычки так, оболочка не пытается разделить имя файла, которое содержит пробел.

Теперь, read -d и <(...) находятся в zsh, ударе и ksh 93u, но я не уверен в ранее ksh версии.

0
13.04.2017, 15:57
1 ответ

Я думаю, что Ваша проблема находится в этой части URL:

?offset=100000filetypes[]=txt

Это - строка запроса с двумя полями в нем (offset и filetypes[]).

Полевые пары значения имени в строке запроса должны быть разделены амперсандом. Попробуйте его этот путь:

?offset=100000&filetypes[]=txt

Без & разделяя поля, Вы говорите серверу о желании смещения "100000filetypes [] =txt". Сервер затем отклоняет это как недействительный аргумент и дает Вам значение по умолчанию 0 вместо этого.

1
28.01.2020, 02:53
  • 1
    , почему мой браузер понимает это w/o амперсанд? –  user13107 22.09.2013, 15:10
  • 2
    "Поймите", когда в поставляет с корректным смещением? –  goldilocks 22.09.2013, 16:47
  • 3
    да! это показывает страницу с корректным смещением. –  user13107 22.09.2013, 17:03

Теги

Похожие вопросы