Explanation for newbies:

  • Shell is the programming language that you use when you open a terminal on linux or mac os. Well, actually “shell” is a family of languages with many different implementations (bash, dash, ash, zsh, ksh, fish, …)

  • Writing programs in shell (called “shell scripts”) is a harrowing experience because the language is optimized for interactive use at a terminal, not writing extensive applications

  • The two lines in the meme change the shell’s behavior to be slightly less headache-inducing for the programmer:

    • set -euo pipefail is the short form of the following three commands:
      • set -e: exit on the first command that fails, rather than plowing through ignoring all errors
      • set -u: treat references to undefined variables as errors
      • set -o pipefail: If a command piped into another command fails, treat that as an error
    • export LC_ALL=C tells other programs to not do weird things depending on locale. For example, it forces seq to output numbers with a period as the decimal separator, even on systems where coma is the default decimal separator (russian, dutch, etc.).
  • The title text references “posix”, which is a document that standardizes, among other things, what features a shell must have. Posix does not require a shell to implement pipefail, so if you want your script to run on as many different platforms as possible, then you cannot use that feature.

    • driving_crooner
      link
      fedilink
      arrow-up
      71
      ·
      11 hours ago

      People say that if you have to explain the joke then it’s not funny. Not here, here the explanation is part of the joke.

      • derpgon@programming.dev
        link
        fedilink
        arrow-up
        7
        ·
        7 hours ago

        It is different in spoken form, written form (chat) and written as a post (like here).

        In person, you get a reaction almost immediately. Written as a short chat, you also get a reaction. But like this is more of an accessibility thing rather than the joke not being funny. You know, like those text descriptions of an image (usually for memes).

      • marcos@lemmy.world
        link
        fedilink
        arrow-up
        8
        ·
        10 hours ago

        I really recommend that if you haven’t, that you look at the Bash’s man page.

        It’s just amazing.

          • marcos@lemmy.world
            link
            fedilink
            arrow-up
            1
            ·
            3 hours ago

            I’m divided between saying it’s really great or that it should be a book and the man page should be something else.

            Good thing man has search, bad thing a lot of people don’t know about that.