Что "bash - apt-get" делает иначе, чем просто "apt-get" в этой команде? - PullRequest
0 голосов
/ 19 мая 2019
curl -sL https://deb.nodesource.com/setup_8.x | bash -
apt-get install -yq nodejs

Мы используем эту команду для обновления узла. Я только что набрал bash - в терминале, и он только что возвратил новую строку. Я посмотрел онлайн и не могу найти или понять, что делает добавление bash - к apt-get в нашем файле update.sh.

1 Ответ

1 голос
/ 19 мая 2019

В вашем коде первая строка загружает скрипт с серверов Node. Это скрипт Bash, и Curl напечатает его на стандартный вывод, поэтому мы используем оператор pipe, чтобы отправить его в Bash. Тире (-) - это стандартный метод сообщения программе о том, что она должна читать со стандартного ввода, а не из файла. Оператор канала работает, отправляя стандартный вывод команды в качестве стандартного ввода следующему, поэтому Bash получит сценарий, загруженный с серверов Node, и обработает его, как если бы это был файл, поэтому он выполнит его.

Если бы вы запустили команду без | bash - в конце, вы бы увидели длинный скрипт Bash, написанный на вашем терминале. Если вы попытаетесь запустить echo "echo Hi" | bash -, вы увидите «Hi» в своем терминале, так как вы сначала печатаете echo Hi на экране, а затем отправляете его в Bash для его выполнения, который выводит «Hi».

Вторая команда выполняет обычную установку Node.js с помощью вашего менеджера пакетов.

Таким образом, в основном вы запускаете скрипт с серверов Node, выполняя некоторые задачи предварительной установки (возможно, добавляя ключи apt из Node и устанавливая зависимости), а затем вы фактически устанавливаете Node.js.

...