Verwende ich beim Festlegen meiner Variable die Punktnotation oder ~?

Verwende ich beim Festlegen meiner Variable die Punktnotation oder ~?

Alle meine Hadoop-Konfigurationsdateien befinden sich an folgendem Ort:

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

Verwende ich zum Festlegen meiner HADOOP_HOME-Variable die Punktnotation oder ~?

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

oder

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

Antwort1

Zunächst einmal: Shell-ZuweisungennichtLassen Sie vor oder nach dem Gleichheitszeichen ein Leerzeichen zu. Beide Ihrer Vorschläge würden tatsächlich versuchen, einen Befehl auszuführen, der wörtlich heißt HADOOP_HOME.

Die relative Variante ist keine gute Idee – relative Pfade sind relativ zum aktuellen Arbeitsverzeichnis, nicht zu Ihrem Home-Verzeichnis. Wenn Sie also cdin eingegeben haben ~/Documents, würde das bedeuten ~/Documents/.linuxbrew/…: . Überhaupt nicht das, was Sie wollen.

Auch die zweite Methode funktioniert nicht wirklich, da Anführungszeichen so funktionieren. Die Erweiterung ~wird von der Shell erwartet – sie sollte eigentlich nicht in eine Umgebungsvariable umgewandelt werden. Aber durch Anführungszeichen verhindern Sie diese Erweiterung. Sie müssen das ~/Bit aus den Anführungszeichen herauslassen oder alternativ verwenden $HOME(was die Erweiterung in doppelten Anführungszeichen vornimmt. Daher sollte eine der beiden Methoden funktionieren (zumindest, wenn $HOMEes auf Ihr Home-Verzeichnis eingestellt ist, was fast immer der Fall ist):

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

Ich persönlich finde die erste einfacher zu lesen. Es gibt noch eine dritte Möglichkeit – hier sind eigentlich keine Anführungszeichen nötig, da der Name keine Sonderzeichen enthält. Daher ist auch dies in Ordnung (und perfekt lesbar):

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

Denken Sie daran, auch die Variable zu exportieren ( export HADOOP_HOME).

verwandte Informationen