>> I think I'll go without the extra subshell and with s/return 1/false/ as >> the exact value doesn't matter. > > You mean > > for ... > do > xyz || > false > done Yes, I do. > ? That does not work. Try this: > > for a in 1 2 3; do echo $a && false; done && echo done ... && echo $? 1 > While it does not print `done`, it will print all of 1, 2 and 3. We do not care about the internal state, aborting early, we rather care only if the whole loop body was executed. Running the test test_expect_success 'witty title' ' for a in 1 2 3; do echo $a && false; done && echo done ' not ok 1 - witty title That is all we want to care about here? Otherwise I may still have a misunderstanding. Thanks, Stefan