[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: