69

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

you are viewing a single comment's thread
view the rest of the comments
[-] kogasa@programming.dev 11 points 3 months ago

What you're saying is irrelevant. In the real world, when an exit code is a boolean, 0 is true.

[-] bobo@lemmy.ml 1 points 3 months ago

In the real world, when an exit code is a boolean

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.

[-] kogasa@programming.dev 5 points 3 months ago* (last edited 3 months ago)

Yes, it is used consistently in GNU Coreutils: https://www.gnu.org/software/coreutils/manual/coreutils.html#Conditions

  • false: do nothing, unsuccessfully (returns 1)

  • true: do nothing, successfully (returns 0)

  • test: check file types and compare values is documented as "returns a status of 0 (true) or 1 (false)"

[-] rtxn@lemmy.world 4 points 3 months ago* (last edited 3 months ago)

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:

  • The if statement tests the return code of the command specified in the header, then executes the then branch if the return code is zero, the else branch otherwise.
  • The while loop similarly tests the command in the head and executes the body if its return code is zero.
  • The boolean && and || operators treat zero return values as true and nonzero return values as false. Go try it out.
  • Even the true and false commands 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. stdout exists. Use it.

[-] Sonotsugipaa@lemmy.dbzer0.com 3 points 3 months ago

/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 -e or on Zsh with setopt err_exit will 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)?

[-] bobo@lemmy.ml 2 points 3 months ago

Thanks, I didn't know they work like that.

I was thinking more along the line of the return 1 example.

this post was submitted on 14 Oct 2025
69 points (78.5% liked)

linuxmemes

29821 readers
1571 users here now

Hint: :q!


Sister communities:


Community rules (click to expand)

1. Follow the site-wide rules

2. Be civil
  • Understand the difference between a joke and an insult.
  • Do not harrass or attack users for any reason. This includes using blanket terms, like "every user of thing".
  • Don't get baited into back-and-forth insults. We are not animals.
  • Leave remarks of "peasantry" to the PCMR community. If you dislike an OS/service/application, attack the thing you dislike, not the individuals who use it. Some people may not have a choice.
  • Bigotry will not be tolerated.
  • 3. Post Linux-related content
  • Including Unix and BSD.
  • Non-Linux content is acceptable as long as it makes a reference to Linux. For example, the poorly made mockery of sudo in Windows.
  • No porn, no politics, no trolling or ragebaiting.
  • Don't come looking for advice, this is not the right community.
  • 4. No recent reposts
  • Everybody uses Arch btw, can't quit Vim, <loves/tolerates/hates> systemd, and wants to interject for a moment. You can stop now.
  • 5. ๐Ÿ‡ฌ๐Ÿ‡ง Language/ัะทั‹ะบ/Sprache
  • This is primarily an English-speaking community. ๐Ÿ‡ฌ๐Ÿ‡ง๐Ÿ‡ฆ๐Ÿ‡บ๐Ÿ‡บ๐Ÿ‡ธ
  • Comments written in other languages are allowed.
  • The substance of a post should be comprehensible for people who only speak English.
  • Titles and post bodies written in other languages will be allowed, but only as long as the above rule is observed.
  • 6. (NEW!) Regarding public figuresWe all have our opinions, and certain public figures can be divisive. Keep in mind that this is a community for memes and light-hearted fun, not for airing grievances or leveling accusations.
  • Keep discussions polite and free of disparagement.
  • We are never in possession of all of the facts. Defamatory comments will not be tolerated.
  • Discussions that get too heated will be locked and offending comments removed.
  • ย 

    Please report posts and comments that break these rules!


    Important: never execute code or follow advice that you don't understand or can't verify, especially here. The word of the day is credibility. This is a meme community -- even the most helpful comments might just be shitposts that can damage your system. Be aware, be smart, don't remove France.

    founded 2 years ago
    MODERATORS