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

每个命令都在其自己的子 shell 中运行,因此变量无法从一个命令传递到下一个命令。把它们放在同一行,它们就会起作用:

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