9

Ruby Version Manager (RVM) устанавливается следующим образом:

bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)

Я понимаю, что вначале <означает (передает сценарий bash в интерпретатор bash), я запутался с частью <(...) . Итак, что здесь делают круглые скобки и чем меньше знак. В каких случаях мы можем использовать тот же синтаксис?

Я попытался покопаться в интернете, нашел этот ТАК вопрос https://stackoverflow.com/questions/2188199/bash-double-or-single-bracket-parentheses-curly-braces и этот вопрос на ubuntuforums: http://ubuntuforums .org/showthread.php?p = 7803008 Но все еще не знаю, почему мы используем эти скобки и почему мы используем перенаправление ввода дважды.

bash < curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer

не то же самое?

Благодарю.

2 ответа2

7

Это процесс замещения. Он передает вывод команды в FIFO, который может быть прочитан как обычный файл.

5

Это означает «запустить команду в скобках и вернуть имя файла, которое представляет стандартный вывод этой команды здесь».

Итак, это переводится на две команды:

curl ... > something
bash -s stable < something

... где "что-то" это магия. (Как правило, /dev/fd/... или труба.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .