ubuntu bash에서 쉘 변수 연결이 작동하지 않는 이유는 무엇입니까?

ubuntu bash에서 쉘 변수 연결이 작동하지 않는 이유는 무엇입니까?

다음 동작을 설명할 수 없습니다. 어떤 아이디어가 있나요?

    Welcome to Ubuntu 12.04.5 LTS (GNU/Linux 3.13.0-32-generic x86_64)

     * Documentation:  https://help.ubuntu.com/
    New release '14.04.2 LTS' available.
    Run 'do-release-upgrade' to upgrade to it.

    Last login: Wed Oct 21 22:43:19 2015 from 10.0.2.2
    vagrant@master:~$ echo $0
    -bash
    vagrant@master:~$ export A=/hello
    vagrant@master:~$ echo $A
    /hello
    vagrant@master:~$ echo $A/bin
    /hello/bin
    vagrant@master:~$ echo $A/bin/asd
    /hello/bin/asd
    vagrant@master:~$ export A=/hello-2.6.1
    vagrant@master:~$ echo $A
    /hello-2.6.1
    vagrant@master:~$ echo $A/bin
    /hello-2.6.1/bin
    vagrant@master:~$ echo $A/bin/asd
    /hello-2.6.1/bin/asd
    vagrant@master:~$ echo $HADOOP_HOME
    /opt/hadoop-2.6.1
    vagrant@master:~$ echo $HADOOP_HOME/bin
    /bin/hadoop-2.6.1
    vagrant@master:~$ echo $HADOOP_HOME/bin1234
    /bin1234oop-2.6.1
    vagrant@master:~$ uname -a
    Linux master 3.13.0-32-generic #57~precise1-Ubuntu SMP Tue Jul 15 03:51:20 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
    vagrant@master:~$ export A=/opt/hadoop-2.6.1
    vagrant@master:~$ echo $A/bin
    /opt/hadoop-2.6.1/bin
    vagrant@master:~$ echo $A/bin/asd
    /opt/hadoop-2.6.1/bin/asd
    vagrant@master:~$ echo $A
    /opt/hadoop-2.6.1
    vagrant@master:~$

답변1

HADOOP_HOME변수가 캐리지 리턴으로 끝나는 값으로 정의된 것 같습니다 .

/ o p t / h a d o o p - 2 . 6 . 1 carriage return

그래서 당신이 할 때

echo $HADOOP_HOME/bin

당신은 출력을 얻습니다

/ o p t / h a d o o p - 2 . 6 . 1 carriage return
/ b i n

모두 한 줄에 있으므로/bin 씌우다화면상으로는 /opt이렇게 보이는데

/bin/hadoop-2.6.1

다음을 수행하여 이를 확인할 수 있습니다.

A=/opt/hadoop-2.6.1
echo $A | od -cb
echo $HADOOP_HOME | od -cb

HADOOP_HOME정의된 위치를 찾아보십시오 . 그것은 당신의 "하나"일 수 있습니다." 파일; 예를 들어 홈 디렉터리에 , .profile, .bashrc, 또는 유사한 이름의 파일이 있습니다 . 이를 사용하는 경우 문자열 끝에 나타나야 하며 이는 캐리지 리턴을 나타냅니다. 삭제합니다..bash_profile/etcvi^M^M

답변2

변수 $HADOOP_HOME끝에 CR 문자가 있는 것 같습니다. 이것을 확인하려면 echo $HADOOP_HOME | cat -vet. 다음과 같아야 합니다 /opt/hadoop-2.6.1$. 그렇다면 이 변수를 설정하는 파일을 변경하십시오.

관련 정보