Учи баш, учи баш
Вот, я опять узнал что-то новое.
! command позволяет инвертировать код возврата. Казалось бы, тривиально, но с учётом мнения readline по поводу '!' у меня было табу насчёт восклицательных знаков в шелле.
! command позволяет инвертировать код возврата. Казалось бы, тривиально, но с учётом мнения readline по поводу '!' у меня было табу насчёт восклицательных знаков в шелле.
no subject
Инвертироать - это как? (Сейчас удалось инвертировать 0 в 1, а остальные?)
no subject
no subject
Вот...
no subject
Несколько неожиданный даже для меня самого результат: я думал что в какой-то момент оно таки превратится в некий эквивалент bool, и там будет как в сишке — 0 => true => 0, x => false => 1 (для любого ненулевого x).
no subject
OMG. It's complicated, is not it? How do they keep 42? Seems like the script is compiled (and optimized) before running. Weird, weird. Not that I don't like it. Enjoying it.
no subject
Compiled? Not necessarily, IMO they have some sort of expression context (kinda like Perl, after all it is from the same era :)). So, a '! ! 42' evaluates in some sort of numeric context (there is an implicit assignment to $!); in the context of 'if .. then' expression it is evaluated as boolean. Makes sense, huh!?
no subject
Yes, but one had to reduce
! !
to nop, otherwise how does it know that! 0
should be 42?