0

我有一个 perl 脚本,它返回值“return 1;” 或“return 0;”。我也试过“exit 1;” 和“退出0;”

在我的makefile中,我有以下代码:

ifneq ($(TRG_TYPE),node)
    VAR := $(shell perl $(ROOT)/Make/chipdep.pl $(ROOT) $(CHIP) $(NAME) ) 
ifeq ($(VAR),1)
    $(error just a test error. Aborting)
endif
endif

我知道 perl 脚本可以工作 - 我单独对其进行了测试,但我从来没有看到这个错误并中止,即使它应该被看到!

4

1 回答 1

0

调用的值shell是 shell 命令的输出,而不是其退出代码。制作您的脚本print 0print 1,或在一般情况下,只从命令$(shell yourcmd >/dev/null 2>&1; echo $$?)中获取退出代码。shell

不过,这似乎有点倒退。如果你的脚本返回 0 表示成功,1 表示失败,也许你应该简单地将它作为目标的第一个命令运行;如果它的任何命令失败,目标将中止。

于 2013-06-16T12:10:18.427 回答