모든 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
먼저, 쉘 할당은아니요등호 앞이나 뒤에 공백 하나가 허용됩니다. 귀하가 제안한 두 가지 모두 실제로 문자 그대로 이라는 명령을 실행하려고 시도합니다 HADOOP_HOME
.
상대 경로는 좋은 생각이 아닙니다. 상대 경로는 홈 디렉터리가 아닌 현재 작업 디렉터리에 상대적입니다. 따라서 이미 cd
에 있다면 ~/Documents
이는 을 의미합니다 ~/Documents/.linuxbrew/…
. 당신이 원하는 것은 전혀 아닙니다.
참조 작동 방식으로 인해 두 번째 참조도 작동하지 않습니다. 확장은 ~
쉘이 수행해야 하는 작업입니다. 일반적으로 확장을 실제로 환경 변수에 넣어서는 안 됩니다. 그러나 이를 참조함으로써 이러한 확장을 방지할 수 있습니다. ~/
따옴표에서 비트를 제거하거나 대신 사용해야 합니다 $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
)도 내보내는 것을 잊지 마세요.