On Wed, Apr 23, 2008 at 07:11:08PM +0400, Alexey Gladkov wrote: > Alexey Tourbin wrote: > >'if' частично отрубает режим -e. > > Это относится к любым конструкциям, а не только к 'if': > > $ cat ./z.sh > #!/bin/sh -e > ( false; echo a; ) && echo b > { false; echo a; } && echo b > > $ ./z.sh > a > b > a > b К любым условным конструкциям, в которых "по смыслу" допустим ненулевой код возврата. Поэтому "опасно" писать код типа if my_function ...; then и рассчитывать на то, что my_function будет выполняться в режиме -e. > в случае sisyphus_check проверка идёт по коду завершения функции: > > $ cat ./z.sh > #!/bin/sh -e > zzz() { echo a; return 1; } > if (zzz); then echo b; fi > > $ ./z.sh > a Так поэтому я и справшиваю, выполняется ли проверки в режиме -e или нет. Желательно чтобы она выполнялась в чистом режиме -e, либо вообще без -e.