systemd-detect-fashdetects execution in a fascist environment. It identifies the fascist technology and can distinguish full machine fascism from installed fashware.systemd-detect-fashexits with a return value of 0 (success) if a fascism technology is detected, and non-zero (error) otherwise.



Do you have any examples of that scenario? I can’t think of any, and from the top of my head it doesn’t make any sense to mix exit codes with bool returns.
Yes, it is used consistently in
GNU Coreutils: https://www.gnu.org/software/coreutils/manual/coreutils.html#Conditionsfalse: do nothing, unsuccessfully(returns 1)true: do nothing, successfully(returns 0)test: check file types and compare valuesis documented as “returns a status of 0 (true) or 1 (false)”To be pedantic: there is no such thing as a boolean value. It’s all just bytes and larger numbers behind an abstraction that allows a higher-level programming language to implement Boolean algebra by interpreting numbers a certain way. One such abstraction is the POSIX convention of treating a return code of zero as success and everything else as a failure. This consequently defines how Boolean algebra is implemented in POSIX-compliant shells:
ifstatement tests the return code of the command specified in the header, then executes thethenbranch if the return code is zero, theelsebranch otherwise.whileloop similarly tests the command in the head and executes the body if its return code is zero.&&and||operators treat zero return values as true and nonzero return values as false. Go try it out.trueandfalsecommands are just programs that immediately return 0 and 1 respectively.If you start treating nonzero return codes like a success value with meaning, the only thing you’ll achieve is that your scripts won’t be compatible with the shell.
stdoutexists. Use it./usr/bin/true and /usr/bin/false come to mind.
Then there’s /usr/bin/test, or more commonly known as
[.How about
function fn { return 1; }; fn?POSIX-like shells consider that a failure, doing that on Bash with
set -eor on Zsh withsetopt err_exitwill close the shell.Should I compile a list of examples with common utility programs like
mkdir, or should I investigate whether 0-is-success also applies to PowerShell-run programs on Windows (idk for sure)?Thanks, I didn’t know they work like that.
I was thinking more along the line of the return 1 example.