我已经使用RVM一段时间了,每次我只是复制并粘贴以下命令来进行设置:
bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
让我觉得我不完全理解语法,以及为什么我们需要double&lt;和括号。有人可以解释这个或指出我正确的参考吗?
答案 0 :(得分:13)
第一个是输入重定向。它将文件的内容作为输入提供给程序。第二个结构是<()
,它是进程重定向:它将进程的输出视为文件。在这种情况下,效果是您将运行该URL的内容,就好像它是一个bash脚本 - 非常危险!如果您不相信完全来源,请不要这样做。攻击者可以使用此方法让您运行会危及系统的命令。
答案 1 :(得分:2)
只需2美分。 Bashs结构<()
,因为@Daenyth声明“处理像文件一样的进程的输出”。这种结构可能非常有用。请考虑以下事项:
diff <(ls dir1) <(ls dir2)
这将使用vimdiff显示 dir1 和 dir2 的内容之间的差异。使用vimdiff
代替diff
甚至会更酷。