設定我的變量,我使用點符號還是〜?

設定我的變量,我使用點符號還是〜?

我的所有 Hadoop 設定檔都位於以下位置:

./.linuxbrew/Cellar/hadoop/2.7.3/libexec/etc/hadoop/"

要設定 HADOOP_HOME 變量,我應該使用點符號還是 ~?

HADOOP_HOME = "./.linuxbrew/Cellar/hadoop/2.7.3/libexec/etc/hadoop/"

或者

HADOOP_HOME = " ~/.linuxbrew/Cellar/hadoop/2.7.3/libexec/etc/hadoop/"

答案1

首先,shell 分配會不是等號之前或之後允許有一個空格。您的兩個建議實際上都會嘗試執行一個字面稱為 的命令HADOOP_HOME

相對路徑不是一個好主意-相對路徑是相對於目前的工作目錄,而不是你的主目錄。所以如果你已經cd進入了~/Documents,那就意味著~/Documents/.linuxbrew/…。根本不是你想要的。

由於引用的工作原理,第二個也不起作用。擴展~是 shell 應該做的事情——它通常不應該真正將其放入環境變數中。但透過引用它,你就阻止了這種擴展。您需要將~/位元從引號中刪除,或替代使用$HOME(它將在雙引號內擴展。因此,其中任何一個都應該有效(至少如果$HOME設定為您的主目錄,它幾乎總是如此):

HADOOP_HOME="$HOME/.linuxbrew/Cellar/hadoop/2.7.3/libexec/etc/hadoop/"
HADOOP_HOME=~/".linuxbrew/Cellar/hadoop/2.7.3/libexec/etc/hadoop/"

就我個人而言,我發現第一個更容易閱讀。還有第三種選擇——實際上不需要在這裡引用任何內容;名稱中沒有任何特殊字元。所以這也很好(並且完全可讀):

HADOOP_HOME=~/.linuxbrew/Cellar/hadoop/2.7.3/libexec/etc/hadoop/

請記得也要導出變數 ( export HADOOP_HOME)。

相關內容