6

私のUbuntu 13では、.bashrcを編集して環境パスを追加しました:

export OGRE_ANDROID_ROOT=/home/piperoman/Librerias/Ogre\ Android\ SDK

変数をエコーすると正常に動作しますが、メイクファイルで使用しようとするとうまくいきません。cdコマンドでテストしましたが、これが結果です。

$ echo $OGRE_ANDROID_ROOT 
/home/piperoman/Librerias/Ogre Android SDK
$ cd $OGRE_ANDROID_ROOT
bash: cd: /home/piperoman/Librerias/Ogre: No such file or directory

echoは機能するのに、コマンドで変数を正しく使用できないのはなぜですか?

4

4 に答える 4

10

簡単な答え:単語分割.

これを持っていると

export OGRE_ANDROID_ROOT=/home/piperoman/Librerias/Ogre\ Android\ SDK

環境変数には「/home/piperoman/Librerias/Ogre Android SDK」が含まれています。

IFS引用符で囲まずに使用すると、Bash は環境変数 (デフォルトではタブ、スペース、および改行) に基づいて文字列を単語に分割します。

そう

cd $OGRE_ANDROID_ROOT

と同等です

cd "/home/piperoman/Librerias/Ogre" "Android" "SDK"

したがって、引用する必要があります。"$OGRE_ANDROID_ROOT"

于 2013-06-19T09:42:17.777 に答える
3

試す

cd "$OGRE_ANDROID_ROOT" 

引用符で。

于 2013-06-19T08:57:54.670 に答える
3

.bashrcバックスラッシュなしで次の行を追加するだけです。

export OGRE_ANDROID_ROOT="/home/piperoman/Librerias/Ogre Android SDK"

必要に応じて、引用符を使用して変数をラップしますcd

cd "$OGRE_ANDROID_ROOT"

でテスト済みexport MYT="/home/me/test/my test/"

于 2013-06-19T09:22:33.343 に答える
1

これは、フォルダー名の間に空白が含まれているためです。Linux では、この空白は単一のフォルダーとして識別されないため、通常は使用されません。

例えば

$ mkdir hello\ world                    // will create a folder named hello world
$ cd hello\ world                      // go in to the created folder
$ pwd                                  // display the directory name

これは hello>space< world として表示されます

したがって、環境変数 $OGRE_ANDROID_ROOT は、/home/piperoman/Librerias/Ogre ではなく、/home/piperoman/Librerias/Ogre Android SDK として設定されます。

このエラーを解決するには、フォルダの名前を変更して空白を削除します

于 2013-06-19T09:28:12.607 に答える