変数を設定するにはドット表記を使用する必要がありますか、または〜を使用する必要がありますか?

変数を設定するにはドット表記を使用する必要がありますか、または〜を使用する必要がありますか?

すべての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

まず、シェル割り当てはいいえ等号の前または後に空白を1つ許​​可します。あなたが提案した両方は実際に文字通りというコマンドを実行しようとしますHADOOP_HOME

相対パスは良い考えではありません。相対パスは、ホームディレクトリではなく現在の作業ディレクトリに相対的です。したがって、すでにcd存在している場合は~/Documentsこれを意味します~/Documents/.linuxbrew/…。あなたが望むものはまったくありません。

参照の仕組みのため、2番目の参照も機能しません。拡張は、~シェルが実行する必要がある操作です。通常、拡張を実際に環境変数に入れてはいけません。ただし、これを参照することで、これらの拡張を防ぐことができます。~/引用符からビットを削除するか、代わりに使用する必要があります(二重引用符で拡張されるため、次のいずれ$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/"

個人的には、最初のコンテンツが読みやすくなると思います。 3番目のオプションがあります。ここでは実際には何も引用する必要はありません。名前に特殊文字がありません。したがって、これも大丈夫です(そして完全に読みやすいです)。

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

変数(export HADOOP_HOME)もエクスポートすることを忘れないでください。

おすすめ記事