this post was submitted on 14 Oct 2025
68 points (78.3% liked)

linuxmemes

27796 readers
174 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.
  • 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
     

    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 1 week ago (2 children)

    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 1 week ago (3 children)

    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 1 week ago* (last edited 1 week 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 1 week ago* (last edited 1 week 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 1 week ago (1 children)

    /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 1 week ago

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

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