37

入力からモジュール名を読み取り、その名前に基づいてディレクトリを作成するmakefileがあります。これが私のコードです:

build:  
    @read -p "Enter Module Name:" module;  
    module_dir=./modules/$$module  
    mkdir -p $$module_dir/build;  

ただし、 module_dirを設定すると、。 / modules /のみが含まれます(モジュール名は連結されません)。
私のコードの何が問題になっていますか?

あなたの答えをありがとう

4

1 に答える 1

87

各コマンドは独自のサブシェルで実行されるため、変数は 1 つのコマンドから次のコマンドまで存続できません。それらを同じ行に配置すると、機能します。

build:  
    @read -p "Enter Module Name:" module; \  
    module_dir=./modules/$$module; \
    mkdir -p $$module_dir/build
于 2012-08-29T03:31:24.717 に答える