hi, Fri, Feb 09, 2018 at 08:16:53, spell wrote about "Re: [freebsd] exit utility":
> > $ set_status() { return $1; } > > $ set_status 26 > > $ echo $? > > 26 > > Спасибо, оно! > (затупила подумать в эту сторону) > (хотя всё-таки это дополнительная громоздкость, и для полноты счастья > хотелось бы готового (даже не утилиту, а builtin, устанавливающий экситкод > (переменную $?), наподобие builtin true/false)) Его не предусматривают, мне кажется, потому, что $? неустойчива - она модифицируется каждой следующей командой. Поэтому, если кому-то этот статус нужен дольше, чем на проверку одним выстрелом, он копируется в другую, явно названную переменную, которая хранит результат уже постоянно. А этой переменной уже можно присвоить нужное значение напрямую, без подобных хитростей. Даже если после этого пользовать конструкции && ||, это делается достаточно легко в стиле test $saved_status = 0 && ветка1 || ветка2 Поэтому мне изначально вся проблема кажется надуманной, или попыткой решения в условиях "категорически запретили приводить стиль к нормальному". Или же какие-то ситуации в духе "100500 веток case, из которых 99% просто передают статус последней команды в теле ветки, но для 1% его надо выставить вручную" (а почему тогда не true/false, они же тоже встроены?) - тоже редкий и странный вариант. Но в первом ответе я не хотел акцентироваться на этом. Достаточно того, что функции и return встроены в любой современный шелл и стоят реально копейки. -netch- _______________________________________________ freebsd mailing list freebsd@uafug.org.ua http://mailman.uafug.org.ua/mailman/listinfo/freebsd