변수를 설정할 때 점 표기법을 사용합니까, 아니면 ~를 사용합니까?

변수를 설정할 때 점 표기법을 사용합니까, 아니면 ~를 사용합니까?

모든 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).

관련 정보