Re: не срабатывает условие в bash
On Fri, Mar 28, 2014 at 10:59:19PM +0400, Dmitrii Kashin wrote:
> Artem Chuprina <ran@ran.pp.ru> writes:
>
> > Vladimir Skubriev -> Debian-russian @ Fri, 28 Mar 2014 12:35:51 +0400:
> >
> > VS> Подсказали на stackoverflow )
> > VS>
> > VS> "$ENABLE_SYSLOG" && logger -t inotifywait -p user.info "$CHMOD_LOG" &
> >
> > С этим осторожно. Это существенно не то же самое. Если ты, скажем,
> > решишь заменить "true" на "yes", эффект будет для тебя крайне
> > неожиданным, а если на "да", то предыдущим.
>
> Артём, а эта ситуация вообще описана в man bash?
Сомневаюсь, что в руководстве по обращению с винтовкой подробно мусолятся
способы прострела собственной ноги с иллюстрациями. :)
> Я как-то не понимаю,
> почему оно работает. Вот первое выражение, оно как интерпретируется в
> контексте булевой операции &&?
Как обычно: берётся exit status от выполненной команды и применяется.
Команда в данном случае оказывается "true", и совершенно случайно она
совпадает с. Если команда окажется "yes", то произойдёт другое случайное
совпадение, но в результате будет не отстрел ноги, а повешенье за яйца.
А установка ENABLE_SYSLOG в значение "1" приведёт к выносу мозга. :)))
--
Eugene Berdnikov
Reply to: