Эксперт в области разработки веб-приложений и безопасности в интернете. Каждый месяц мой блог посещают около 90 тысяч человек. Работаю техническим директором в «Системах документооборота», занимаюсь электронным правительством.
Each command executes in turn, provided that the previous command has given a return value of true (zero). At the first false (non-zero) return, the command chain terminates (the first command returning false is the last one to execute).Цитата из «Advanced Bash-Scripting Guide». Всё-таки пусть bash умрёт.
bolk (bolknote.ru)
7 июля 2010, 15:49,
ответ предназначен maxim-zotov (maxim-zotov.livejournal.com):
maxim-zotov (maxim-zotov.livejournal.com)
7 июля 2010, 15:56
deniszh (deniszh2.ya.ru)
7 июля 2010, 16:01
bolk (bolknote.ru)
7 июля 2010, 16:02,
ответ предназначен maxim-zotov (maxim-zotov.livejournal.com):
bolk (bolknote.ru)
7 июля 2010, 16:03,
ответ предназначен deniszh (deniszh2.ya.ru):
ээээ... ну так exit code 0 - это все гут, не 0 - все плохо. Выполнять цепочку команд пока всеСовершенно нелогично, что «A && B» должно выполнить «B», если «A» вернуло ноль, не так ли?
borzdeg.blogspot.com (borzdeg.blogspot.com)
7 июля 2010, 16:05
maxim-zotov (maxim-zotov.livejournal.com)
7 июля 2010, 16:12,
ответ предназначен bolk (bolknote.ru):
Ну это не повод считать, что 0 это true :)true оно называется для того, чтобы логические выражения типа "A && B" оперировали обычными для них понятиями "true" и "false". Ведь именно такими значениями оперируют логические выражения. Да, более точный смысл - "success" и "fail", но какая разница?
bolk (bolknote.ru)
7 июля 2010, 16:19,
ответ предназначен borzdeg.blogspot.com:
что-то я тоже не догоняю - хде "ржать"-то?Второй коммент.
bolk (bolknote.ru)
7 июля 2010, 16:19,
ответ предназначен maxim-zotov (maxim-zotov.livejournal.com):
true оно называется для того, чтобы логические выражения типа "A && B" оперировали обычными для них понятиями "true" и "false". Ведь именно такими значениями оперируют логические выражения. Да, более точный смысл - "success" и "fail", но какая разница?Да, Капитан :) Вот именно это и нелогично.
deniszh (deniszh2.ya.ru)
7 июля 2010, 17:33,
ответ предназначен bolk (bolknote.ru):
hshhhhh.name (hshhhhh.name)
7 июля 2010, 18:00
bolk (bolknote.ru)
7 июля 2010, 18:26,
ответ предназначен deniszh (deniszh2.ya.ru):
bash как раз тут ведет себя абсолютно логично - его авторы не писали что "zero" это "true"...Тем не менее, по операциям «&&» и «||» получается, что «0» это «true»
bolk (bolknote.ru)
7 июля 2010, 18:27,
ответ предназначен hshhhhh.name:
да, я вот не могу аргументированно ничего сказать и мне вообще все равно, но уберите руки от баша! :DДа ну, херовый же шел. Он жив потому, что везде есть и на нём многое принято писать.
jankkhvej (jankkhvej.blogspot.com)
7 июля 2010, 19:04
LXj (инкогнито)
7 июля 2010, 19:13
gaius-julius (gaius-julius.livejournal.com)
7 июля 2010, 20:02
astur (astur.net.ru)
7 июля 2010, 20:54
bolk (bolknote.ru)
7 июля 2010, 23:40,
ответ предназначен jankkhvej (jankkhvej.blogspot.com):
А какой — хороший? lisp?Например, PowerShell. zsh хорош.
bolk (bolknote.ru)
7 июля 2010, 23:41,
ответ предназначен gaius-julius (gaius-julius.livejournal.com):
что-то мне подсказывает, что если сменить шелл, то программы не перестанут 0 возвращать в качестве успеха. (-:Это правда :) Я немного троллю :)
bolk (bolknote.ru)
7 июля 2010, 23:42,
ответ предназначен astur (astur.net.ru):
Успех - один. Ошибки разные. Вот если по уму говорить, то куда бы ты порекомендовал определить ноль, а куда остальные цифры?Современный шел вообще таким заморачиваться не должен. Исключения и их обработка.
bolk (bolknote.ru)
7 июля 2010, 23:46,
ответ предназначен LXj
Разве exit-коды от шелла зависят?Я немного троллю, да. Но вообще exit-коды это пережиток прошлого.
(Что-то по OpenID как lxj.endofinternet.net зайти не могу, говорит Fatal error: Cannot redeclare class hKit in /home/bolk/domains/bolknote.ru/public_html/_blok/h kit.inc.php on line 72)Oops… А если сейчас попробовать?
Ной (sad-wind.ya.ru)
8 июля 2010, 15:04
At the first false (non-zero) return, the command chain terminates (the first command returning false is the last one to execute).Это как-бы тонкая полуправда на границе с ложью.
bolk (bolknote.ru)
8 июля 2010, 15:57,
ответ предназначен Ной (sad-wind.ya.ru):
P.P.S. Гробить написанный коммент, если юзер забыл написать openId - невежливо.А я и не гроблю. Разве что ошибка какая-то могла случится. Можно подробнее симптомы?
Ной (sad-wind.ya.ru)
8 июля 2010, 17:53,
ответ предназначен bolk (bolknote.ru):
maxim-zotov (maxim-zotov.livejournal.com)
8 июля 2010, 18:53,
ответ предназначен Ной (sad-wind.ya.ru):
Например, такая команда завершится без ошибки и выполнение продолжитсяВо-первых, ход мысли верный, но пример неудачный, потому что grep в этом случае как раз будет возращать ошибку, поэтому результат pipeline будет ошибочным, но не из-за несуществующего файла, а из-за того, что греп не нашел заданных строк.
cat non-existent-file | grep -v 'bad' > result
bolk (bolknote.ru)
8 июля 2010, 19:39,
ответ предназначен Ной (sad-wind.ya.ru):
Отправляю комментарий я незаполненным именем.Ох, mea culpa. Буду править.
Получаю назад пустую форму и "Ошибка: Введите адрес вашего сайта или блога"
jankkhvej (jankkhvej.blogspot.com)
11 июля 2010, 23:00
jankkhvej (jankkhvej.blogspot.com)
11 июля 2010, 23:01
bolk (bolknote.ru)
12 июля 2010, 00:30,
ответ предназначен jankkhvej (jankkhvej.blogspot.com):
jankkhvej (jankkhvej.blogspot.com)
12 июля 2010, 00:38,
ответ предназначен bolk (bolknote.ru):
bolk (bolknote.ru)
12 июля 2010, 09:18,
ответ предназначен jankkhvej (jankkhvej.blogspot.com):
jankkhvej (jankkhvej.blogspot.com)
12 июля 2010, 14:22,
ответ предназначен bolk (bolknote.ru):
bolk (bolknote.ru)
13 июля 2010, 23:59,
ответ предназначен jankkhvej (jankkhvej.blogspot.com):
jankkhvej (jankkhvej.blogspot.com)
17 июля 2010, 11:09,
ответ предназначен bolk (bolknote.ru):
maxim-zotov (maxim-zotov.livejournal.com)
А что не так?7 июля 2010, 15:43