Bash

看不懂這個劇本。bash <<(curl -s http://xxx.com)

  • May 30, 2012

在一本 rails book 中,作者編寫了安裝 ruby​​ rvm 的腳本。

bash &lt;&lt;(curl -s https://rvm.beginrescueend.com/install/rvm)

但我不明白它是如何工作的。你能解釋一下嗎?

有一個 << 運算符(此處為文件),但不是此處使用的。

您首先有一個輸入重定向&lt;,它說從以下參數中選擇輸入,然後是&lt;(command)所謂的程序替換,它說用包含命令輸出的文件描述符替換它。

這個命令可以寫成

bash &lt; &lt;(curl -s https://rvm.beginrescueend.com/install/rvm)

但這只是一種複雜的做法:

curl -s https://rvm.beginrescueend.com/install/rvm | bash

one &lt;&lt;(two)執行命令two並將其輸出通過管道傳輸到one. 比較常見的寫法是two | one,所以你的命令也可以寫成:

curl -s https://rvm.beginrescueend.com/install/rvm | bash

該連結現在已損壞,但該網站要使用此連結:

curl -L get.rvm.io | bash -s stable

curl輸出它下載的內容,因此這會下載文件get.rvm.io並將其內容通過管道傳輸到 bash。如果您只是單獨執行該curl命令,您可以看到它是一個bash下載和安裝 rvm 的腳本

引用自:https://unix.stackexchange.com/questions/39645