OS X: эквивалент Linux wget

Как я могу выполнить HTTP GET из оболочки Un * x script в ОС OS X? (установка стороннего программного обеспечения не является вариантом, поскольку это должно выполняться на множестве разных систем, на которые у меня нет контроля).

Например, если я запускаю сервер Mercurial, локально выполняющий hg-службу:

... $ 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 из оболочки script является использование wget (если эта команда установлена, конечно).

Какие еще существуют способы сделать эквивалент wget? Я смотрю, в частности, на то, что будет работать с установкой OS X.

Ответ 1

Мне нужно сказать curl http://127.0.0.1:8000 -o outfile

Ответ 2

brew install wget

Homebrew - это менеджер пакетов для OSX, аналогичный yum, apt-get, choco, emerge и т.д. Имейте в виду, что вам также потребуется установить Xcode и Инструменты командной строки. Практически любой, кто использует командную строку в OSX, все равно захочет установить эти вещи.

Если вы не можете или не хотите использовать доморощенный, вы также можете:

Установите wget вручную:

curl -# "http://ftp.gnu.org/gnu/wget/wget-1.17.tar.xz" -o "wget.tar.xz"
tar xf wget.tar.xz
cd wget-1.17
./configure --with-ssl=openssl -with-libssl-prefix=/usr/local/ssl && make -j8 && make install

Или используйте псевдоним bash:

function _wget() { curl "${1}" -o $(basename "${1}") ; };
alias wget='_wget'

Ответ 3

Curl имеет режим, который почти эквивалентен стандарту wget.

curl -O <url>

Это работает так же, как

wget <url>

И, если хотите, вы можете добавить это в свой .bashrc:

alias wget='curl -O'

Он не на 100% совместим, но работает для наиболее распространенного использования wget (IMO)

Ответ 4

1) на вашем макете

nano /usr/bin/wget

2) вставьте следующее в

#!/bin/bash
curl -L $1 -o $2

3), затем сделайте его выполнимым

chmod 777 /usr/bin/wget

Что это.

Ответ 5

Используйте curl;

curl http://127.0.0.1:8000 -o index.html

Ответ 6

Здесь Mac OS X эквивалент Linux wget.

Для Linux, например Ubuntu на экземпляре AWS, используйте:

wget http://example.com/textfile.txt

На Mac, то есть для локальной разработки, используйте это:

curl http://example.com/textfile.txt -o textfile.txt

Параметр -o требуется на Mac для вывода в файл, а не на экране. Укажите другое имя цели для переименования загруженного файла.

Используйте капитал -O для переименования с помощью wget. Нижний регистр -o укажет выходной файл для журнала передачи.

Ответ 7

Вы можете либо построить wget на компьютере Mac, либо использовать MacPorts для его установки напрямую.

sudo port install wget 

Это будет работать как шарм, и вы сможете обновить его до последней версии, как только это будет доступно. Порт намного стабильнее, чем brew, хотя он имеет намного меньшее количество формул и портов.

Вы можете установить MacPorts из https://www.macports.org/install.php, вы можете загрузить файл .pkg и установить его.

Ответ 8

Вместо этого вы можете использовать curl. По умолчанию он установлен в /usr/bin.