У меня есть цикл for в сценарии оболочки а-ля:
#!/bin/bash
set -u
set -e
for l in sh rb py php java cs; do
(cd $l; ./run-tests.sh)
done
Намерение состоит в том, чтобы заставить цикл for умереть при пожаре, когда любая из подкоманд аналогично выдает ошибку.
Теперь у меня есть обходной путь : (cd $l; ./run-tests.sh) || die "Message here"
вместе с подходящим определением die
. Тем не менее, мне действительно любопытно, почему цикл for не завершается самостоятельно в соответствии с ожиданием, установленным командой "set -e"? В идеале, я бы не хотел, чтобы каждый такой цикл был особенным. :)