为什么在 Makefile 中使用 exec?

G. *_*ard 2 makefile

execMakefile 中 是否需要关键字?

build-cache: clean-cache                                    
    @exec ./scripts/copy_packages.sh
    ./scripts/build_makefile.sh
    docker build -t common/cache ./cache
Run Code Online (Sandbox Code Playgroud)

我只是注意到有些行使用 exec 而其他行则不使用。

Jon*_*ler 6

否(exec不是 中的关键字make);你误解了这一行:

@exec ./scripts/copy_packages.sh
Run Code Online (Sandbox Code Playgroud)

@意味着在执行此“配方”中的命令时“不要回显此行”。这exec意味着开始运行该行的 shellmake将其自身替换为脚本./scripts/copy_packages.sh

另请参阅《什么》中的 do@-do+作为配方行的前缀make