什么是"$$?" 在这个makefile片段中意味着什么?

smw*_*dia 1 bash makefile

什么是"$$?" 在下面的Makefile片段中是什么意思?

$(PROGS): FORCE
    @cd $(BUILD_DIRECTORY_PATH)/$@; \
    mkdir -p obj; \
    $(MAKE) || exit "$$?"; \  <====== HERE
Run Code Online (Sandbox Code Playgroud)

添加1

我想这意味着exit "$?"在bash中,因为$$在makefile中转义为$.

但那 exit "$?"意味着什么呢?

Awk*_*Man 5

$?是程序退出或完成时的返回码.因此,在你的行

$(MAKE) || exit "$$?"
Run Code Online (Sandbox Code Playgroud)

它会执行$(MAKE).如果该程序没有正确完成,它将返回不同于0的返回代码,然后exit "$$?"执行.这将使当前进程退出到shell,其返回代码与$(MAKE)程序相同,您将能够echo $?在shell中执行该程序.