[devel] [git pull] sisyphus_check changes
Alexey Gladkov
=?iso-8859-1?q?legion_=CE=C1_altlinux=2Eru?=
Ср Апр 23 19:11:08 MSD 2008
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
Учитывается только код возврата на верхнем уровне.
> $ sh -ec 'if (echo $-); then echo $-; fi'
> ehBc
> ehBc
> $ sh -ec 'if (false; echo a); then echo b; fi'
> a
> b
> $
в случае sisyphus_check проверка идёт по коду завершения функции:
$ cat ./z.sh
#!/bin/sh -e
zzz() { echo a; return 1; }
if (zzz); then echo b; fi
$ ./z.sh
a
--
Rgrds, legion
Подробная информация о списке рассылки Devel