Al configurar mi variable, ¿uso la notación de puntos o ~?

Al configurar mi variable, ¿uso la notación de puntos o ~?

Todos mis archivos de configuración de Hadoop se encuentran en lo siguiente:

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

Para configurar mi variable HADOOP_HOME, ¿uso la notación de puntos o ~?

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

o

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

Respuesta1

En primer lugar, las asignaciones de shell nonodeje un espacio antes o después del signo igual. Ambas sugerencias intentarían ejecutar un comando llamado literalmente HADOOP_HOME.

La relativa no es una buena idea: las rutas relativas son relativas al directorio de trabajo actual, no a su directorio de inicio. Entonces, si te ha cdgustado ~/Documents, entonces eso significaría ~/Documents/.linuxbrew/…. Para nada lo que quieres.

El segundo tampoco funciona debido a cómo funcionan las citas. La expansión ~es algo que se espera que haga el shell; generalmente no debería convertirse en una variable de entorno. Pero al citarlo, has impedido esa expansión. Debe dejar el ~/bit fuera de las comillas o usar un uso alternativo $HOME(que se expandirá entre comillas dobles. Por lo tanto, cualquiera de estas debería funcionar (al menos si $HOMEestá configurado en su directorio de inicio, que casi siempre es así):

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

Personalmente, el primero me parece más fácil de leer. Existe una tercera opción: en realidad no necesita ninguna cita aquí; no hay caracteres especiales en el nombre. Así que esto también está bien (y es perfectamente legible):

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

Recuerde exportar la variable también ( export HADOOP_HOME).

información relacionada