让命令退出 1

Have make command exit 1

我正在尝试使用 Make 命令抛出错误。这是我的生成文件:

exit:
    val=1
    exit $(val)

然而,当我 运行 make exit && echo $? 它给了我退出代码 0。我期待退出代码 1。

我是不是用错了?欣赏一下。

  1. Makefile 目标 "scripts" 不像真正的脚本 运行,而是每个命令 运行 在单独的 shell 中.
  2. 您需要使用额外的美元符号来转义 makefile 中的美元符号。
  3. 在目标外部声明并使用 $(name) 引用的 makefile 变量与在目标内部声明为命令的一部分并使用 [=13] 引用的 shell 变量之间存在根本区别=].

您想要的是相当于 val=1 && exit $val:

的单个命令
exit:
    val=1 && exit $${val}

或简单命令中使用的 makefile 变量:

val = 1
exit:
    exit $(val)