![](/img/trans.png)
[英]capistrano deployment with rbenv: /home/deploy/.rbenv/bin/rbenv: No such file or directory
[英]Explain the different parts of the code needed to add $HOME/.rbenv/bin to your $PATH
我知道代碼正在嘗試使$ PATH中的$ HOME / .rbenv / bin中的可執行文件可用,以便可以從命令行執行它,但我不知道代碼是如何執行的。 代碼如下所示:
echo'export PATH =“ $ HOME / .rbenv / bin:$ PATH”'>> $ HOME / .bashrc。
我知道在bashrc文件的末尾附加了一些內容,並且我知道export用於將環境變量導出到新的shell中,但是我在這里看不到任何新的shell。 而且我已經看到回聲以下列方式使用:a = 5; 回聲$ a,但我不知道為什么你在這里需要它是什么
PATH =“ $ HOME / .rbenv / bin:$ PATH”
在做。 “ PATH”代表什么。 它是沒有$的變量,並且是'bin:$ PATH'嗎?
在bash(和大多數其他shell)中,您分配的變量沒有$
,因此PATH=something
將變量PATH
分配給字符串"something"
。
在Unix / Linux中, PATH
是包含由冒號分隔的文件夾的列表的字符串變量( :
)。 例如,在我的筆記本電腦上,這是我的PATH
:
> echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
這意味着可以在任何位置訪問這些文件夾中的任何可執行文件,而無需鍵入完整路徑。 通常,您會在.bashrc
文件中將內容添加到PATH
中,以便在您的shell啟動時添加它們。 如果您使用which
命令,您將看到命令所在的位置,它將位於以下文件夾之一中:
> which rm
/bin/rm
要添加新的文件夾到PATH
,你重新分配PATH
成為新文件夾的字符串,然后由一個冒號和以前的值PATH
。
在您的示例中,您將$HOME/.rbenv/bin
到PATH
的開頭。 $HOME
將擴展到您的主目錄。
為了更好地理解這一點,我們可以執行以下操作:
> echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
> export PATH="$HOME/.rbenv/bin:$PATH"
> echo $PATH
/Users/javanut13/.rbenv/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
如您所見, rbenv
文件夾已添加到PATH
變量的前面。
export
將變量放入當前外殼程序的環境中,這意味着在該外殼程序中啟動的其他命令(子進程)也將獲得此更改 。 例如,如果您不export
,然后運行使用ruby
的bash腳本,則它將失敗,因為它的路徑中沒有~/.rbenv/bin
文件夾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.