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

おすすめ記事