[devel] [#210675] EPERM bash.git=4.2.53-alt1

Vladislav Zavjalov slazav на altlinux.org
Пт Июл 27 15:36:07 MSK 2018


On Fri, Jul 27, 2018 at 03:30:52PM +0300, Alexey Tourbin wrote:
> 2018-07-27 15:25 GMT+03:00 Paul Wolneykien <manowar на altlinux.org>:
> > А через || можно переписать, или не сработает?
> >
> > (...) || rc=$?
> 
> if/or отрубает режим -e внутри кода, у которого проверяется статус
> возврата. Это известная багофича стандартного шелла, которая скорее
> всего никогда не будет исправлена. Поэтому приходится извращаться.
> 
> $ sh -e -c '(false; echo a)'
> $ sh -e -c '(false; echo a) ||:'
> a

Ага, я когда-то придумывал загадку на эту тему. Угадайте результат,
не запуская команды:

$ sh -e -c '! true; echo OK'
$ sh -e -c 'false; echo OK'
$ sh -e -c 'false && false; echo OK'
$ sh -e -c 'false && true; echo OK'
$ sh -e -c 'true && false; echo OK'



Подробная информация о списке рассылки Devel