Ruby 版本管理器(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-bracesubuntuforums 上有这个问题:http://ubuntuforums.org/showthread.php?p=7803008但仍然不知道为什么我们使用那些括号以及为什么我们使用输入重定向两次。
bash < curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer
不一样吗?
谢谢。
答案1
它是流程替代. 它将命令的输出馈送到可以像普通文件一样读取的 FIFO 中。
答案2
意思是“运行括号内的命令,并在这里返回一个代表该命令标准输出的文件名”。
因此,这转化为两个命令:
curl ... > something
bash -s stable < something
...其中“某物”是魔法。(通常/dev/fd/...
是管道。)