Как я могу сделать HTTP GET из сценария оболочки Un * x в стандартной системе OS X? (установка стороннего программного обеспечения не является опцией, так как она должна работать на множестве разных систем, которые я не контролирую).
Например, если я запускаю сервер Mercurial локально, выполняя hg serve :
... $ hg serve
И затем из Linux, в котором есть команда wget, я делаю wget:
... $ wget http://127.0.0.1:8000
--2010-12-31 22:18:25-- http://127.0.0.1:8000/
Connecting to 127.0.0.1:8000... connected.
HTTP request sent, awaiting response... 200 Script output follows
Length: unspecified [text/html]
Saving to: `index.html
И на терминале, в котором я запустил команду "hg serve" , я действительно вижу, что HTTP GET сделал свой путь:
127.0.0.1 - - [30/Dec/2010 22:18:17] "GET / HTTP/1.0" 200 -
Поэтому в Linux один из способов сделать HTTP GET из сценария оболочки - это использовать wget (если, конечно, эта команда установлена).
Какие есть еще способы сделать эквивалент wget ? В частности, я ищу что-то, что будет работать на стандартных установках OS X.
Ответы:
Я собираюсь сказать
curl http://127.0.0.1:8000 -o outfile
источник
-O
или--remote-name
пометить для автоматического переименования загруженного файла. напр.curl -O http://somehost.org/file.zip
brew install wget
Homebrew - менеджер пакетов для OSX, аналогичный yum, apt-get, choco, emerge и т. Д. Имейте в виду, что вам также потребуется установить Xcode и инструменты командной строки. Практически любой, кто использует командную строку в OSX, захочет установить эти вещи в любом случае.
Если вы не можете или не хотите использовать домашний напиток, вы также можете:
Установите wget вручную:
Или используйте псевдоним bash:
источник
wget
ответ, поскольку единственный другой был удален его владельцем иcurl
является альтернативой, а не буквальным эквивалентом.У Curl есть режим, который почти эквивалентен стандартному wget.
Это работает так же, как
И, если хотите, вы можете добавить это в ваш .bashrc:
Это не на 100% совместимо, но работает для наиболее распространенного использования wget (IMO)
источник
for i in `seq 1 <n>` do curl -O <url>;done;
где <n> - это количество раз, которое вы хотите повторить, а <url> - это URL для извлечения.-L
флаг, чтобы следовать перенаправлениям местоположения. Вы можете использоватьcurl -OL <url>
для этого.-O
также относится только к следующему аргументу, поэтому для загрузки нескольких URL-адресов необходимо использовать что-то вродеcurl -O "$url1" -O "$url2"
илиprintf %s\\n "$url1" "$url2"|xargs -n1 curl -O
.1) на вашем Mac типе
2) вставить следующее в
3) закройте, затем сделайте его исполняемым
Вот и все.
источник
vim /usr/bin/wget
хотя;) хаха, шучу. спасибо за ответ - мне это никогда не приходило в голову, и по какой-то причине мне не хочется устанавливать brew / fink / что угодно, так что слава за легкий переносимый ответ.-L
важно для обработки http301
ответов. wget обрабатывает их по умолчанию.Использование
curl
;источник
Вот Mac OS X, эквивалентный Linux wget.
Для Linux, например Ubuntu на экземпляре AWS, используйте:
На Mac, то есть для локальной разработки, используйте это:
Параметр -o требуется на Mac для вывода в файл, а не на экран. Укажите другое целевое имя для переименования загруженного файла.
Используйте прописные -O для переименования с помощью wget. Нижний регистр -o будет указывать выходной файл для журнала передачи.
источник
Вы можете либо собрать wget на компьютере Mac, либо использовать MacPorts для его непосредственной установки.
Это будет работать как шарм, также вы можете обновиться до последней версии, как только она станет доступна. Порт намного стабильнее, чем brew, хотя у него гораздо меньше формул и портов.
Вы можете установить MacPorts,
https://www.macports.org/install.php
вы можете скачать.pkg
файл и установить его.источник
Вместо того, чтобы использовать эквивалент, вы можете попробовать "brew install wget" и использовать wget.
Вы должны иметь установленный Brew на вашем Mac.
источник
Вы могли бы использовать
curl
вместо этого. По умолчанию он устанавливается в/usr/bin
.источник
wget предварительно скомпилированный Mac Binary
Для тех, кто ищет быструю установку wget на Mac, посмотрите предварительно скомпилированный двоичный файл Квентина Стаффорда-Фрейзера, который существует уже более десяти лет:
https://statusq.org/archives/2008/07/30/1954/
MD5 на 2008 год wget.zip: 24a35d499704eecedd09e0dd52175582
MD5 на 2005 год wget.zip: c7b48ec3ff929d9bd28ddb87e1a76ffb
Нет мусора make / install / port / brew / curl. Просто скачайте, установите и запустите. Работает с Mac OS X 10.3-10.12 +.
источник