Bash
看不懂這個劇本。bash <<(curl -s http://xxx.com)
在一本 rails book 中,作者編寫了安裝 ruby rvm 的腳本。
bash <<(curl -s https://rvm.beginrescueend.com/install/rvm)
但我不明白它是如何工作的。你能解釋一下嗎?
有一個 << 運算符(此處為文件),但不是此處使用的。
您首先有一個輸入重定向
<
,它說從以下參數中選擇輸入,然後是<(command)
所謂的程序替換,它說用包含命令輸出的文件描述符替換它。這個命令可以寫成
bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
但這只是一種複雜的做法:
curl -s https://rvm.beginrescueend.com/install/rvm | bash
one <<(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 的腳本