bash <<语法是什么意思?


10

像这样安装Ruby Version Manager(RVM):

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

我理解first <是什么意思(将bash脚本提供给bash解释器),我对此感到困惑<(...)。因此,括号在这里的作用是小于号。在哪种情况下,我们可以使用相同的语法?

我试图在互联网上进行挖掘,发现了这样的问题/programming/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

不一样吗?

谢谢。


我认为更好的问题是:为什么相同bash <(curl -s ...)
Bruno Bronosky

当命令<(...)在该位置接受文件名时,该命令起作用。如果在其前面加上另一个<,则该命令必须接受来自stdin的输入。如果没有提供文件名,则某些命令将以任何一种方式工作并使用stdin。接受的答案暗示了这种差异。
Lee Meador

Answers:



5

这意味着“在括号内运行命令,并在此处返回代表该命令标准输出的文件名”。

因此,这转化为两个命令:

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

...其中“某物”是魔术。(通常/dev/fd/...是管道。)


3
但是为什么我不能只使用curl ... | bash -s稳定吗?
LILAS
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.