0

値「return 1;」を返す perl スクリプトがあります。または「return 0;」.「exit 1;」も試しました そして「出口0;」

私のメイクファイルには、次のコードがあります。

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呼び出しの値は、終了コードではなく、シェル コマンドの出力です。コマンドから終了コードだけを取得するには、スクリプトを作成print 0するかprint 1、または一般的には実行します。$(shell yourcmd >/dev/null 2>&1; echo $$?)shell

ただし、これは少し後方に見えます。スクリプトが成功の場合は 0 を返し、失敗の場合は 1 を返す場合は、ターゲットの最初のコマンドとして単純に実行する必要があります。コマンドのいずれかが失敗すると、ターゲットは中止されます。

于 2013-06-16T12:10:18.427 に答える