2015-10-30 77 views
2

我必須運行這個命令來安裝NPM。它有什麼作用?什麼是|最後?什麼是| (管道字符)在shell(bash)命令中執行?

curl https://raw.githubusercontent.com/creationix/nvm/v0.23.2/install.sh | bash 

此外,我在Bash中運行類UNIX命令嗎?爲什麼這個工作? Bash是否是終端的UNIX命令兼容接口?

+1

'curl'檢索指定的文件,這恰好是一個shell腳本,並且被傳送到'bash'中,這是執行它的shell程序。如果你在Google上搜索「什麼是bash」,你會發現可能的解釋。但是,是的,'bash'是幾種不同的Unix shell實現之一。 – lurker

+0

@Zloj在一般情況下,這是真的。在知名發行商和可信賴關係的特定情況下,以及對代碼進行審查的一些合理方法,它不是那麼糟糕(但仍然不好)。 – tripleee

回答

1

在bash(和大多數* nix shell)中,|(管道)符號從一個命令中獲取輸出並將其用作下一個命令的輸入。

你在做什麼在這裏被使用curl來檢索install.sh文件,然後輸出其內容爲慶典,這是一個shell會執行install.sh

的內容簡單地說,你正在下載並運行install.sh腳本。

+0

你是什麼意思「輸入下一個命令」? 「bash」命令是否需要輸入? – Jwan622

+1

所有* nix程序有三個流,標準輸入,標準輸出和標準錯誤。 當您將管道輸入傳遞給程序可以使用的標準時,與參數類似。 一個例子是'''cat file | grep關鍵字| less''' 這將打印文件的內容,然後過濾文件的內容,然後在屏幕上顯示結果。 http://stackoverflow.com/questions/9834086/what-is-a-simple-explanation-for-how-pipes-work-in-bash可以更好地解釋它。 –