11

次の bash コマンドがあるとします。

for i in ./ x ; do ls $i ; done && echo OK

「ls ./」が実行され、次に「ls x」が実行されますが、これは失敗し (x がない)、OK は出力されません。

もしも

for i in x ./ ; do ls $i ; done && echo OK

次に、「ls x」が失敗しても、for ループの最後のステートメントが成功したため、OK が出力されます。これは、makefile で shell for loops を使用する場合の問題です。

x:
    for i in $(LIST) ; do \
        cmd $$i  ;\
    done 

cmd の個々の実行のいずれかが失敗した場合、どのようにして make を失敗させることができますか?

4

2 に答える 2