Может кто-нибудь объяснить, что делает эта команда wget для установки пояса для инструментов Heroku?

Я знакомлюсь с командами терминала и наткнулся на эту команду для установки пояса Heroku:

wget -qO- https://toolbelt.heroku.com/install.sh | sh

Отсюда я понял, что wget используется для загрузки файлов из Интернета по различным поддерживаемым протоколам, и они будут загружаться, даже если я выйду из системы.

Это правильно?

И я хотел бы знать еще две вещи об этой команде:

  1. я вижу -q0- в коде. Что это значит? Из manpages я вижу, что -q используется, чтобы включить выход Wget выкл. Но что это значит тоже? И как это использовать -q отличный от -q0-

  2. Что |sh в конце команды для? Что это делает?

Большое спасибо за время!

3 ответа

Решение

Эта команда на самом деле wget -qO не wget -q0,

Он автоматически загрузит файл https://toolbelt.heroku.com/install.sh (опция -q), и все загруженное будет объединено и записано в один файл-буфер (опция -O), который загружает буфер. затем будет отправлен и выполнен с sh,

sh интерпретатор оболочки, который будет запускать информацию, которую только что скачал wget

Итак, простыми словами вы говорите с помощью этой команды: загрузите этот sh-файл и не создавайте вывод о прогрессе, и все, что вы загружаете, выполняет его sh,

  1. Как и большинство изолированных программ, запускаемых из терминала, wget обычно НЕ будет продолжать работать после закрытия родительского (терминала) (через выход из системы и т. Д.)

  2. -qO- является сокращением двух параметров командной строки -q -O-

    • q говорит wget не выводить информацию о статусе / прогрессе
    • O- говорит ему выводить загруженные данные в стандартный вывод
  3. | sh передает данные из стандартного вывода в sh команда, выполняющая скрипт

Это не 0 (число), это O (буква), оно перенаправляет вывод в файл, в данном случае (-) стандартный вывод, поэтому содержимое загруженного файла будет перенаправлено (с помощью |) на sh стандартный ввод. sh является оболочкой, интерпретатором команд, который будет выполнять команды, которые он получает.

Вы можете узнать больше о поиске перенаправлений в sh manpage (man sh).

Другие вопросы по тегам