I’m moving my posts from Reddit to Lemmy before delete them.

This post is from 2020-09-03.

  • Gamma@programming.dev
    link
    fedilink
    English
    arrow-up
    5
    ·
    edit-2
    1 year ago

    There are two massive points no one has mentioned yet.

    • Quoting every expansion isn’t necessary in Zsh. Parameters don’t split or glob by default.
    • $array actually expands to every element in an array.

    Compare this between Bash and Zsh:

    a=('/* hello */' 'world!' '  ')
    printf '"%s" ' $a
    
    • Zucca@sopuli.xyz
      link
      fedilink
      English
      arrow-up
      4
      ·
      edit-2
      1 year ago

      $array actually expands to every element in an array.

      Very convenient. But ~every shell script is written in bash or POSIX(y) sh. When I need to write shell scripts I begin with busybox sh compability. If it turns out to be too complex, I’ll convert to bash. This is because if I ever would publish the script it would have better changes to be accepted as a PR for example. Yes. Bash is a mess. I don’t even like it that much. It’s okay. But it’s more standard then zsh. Although I’ve seen the tides turn on some occasions, like macOS.

      Maybe some day I’ll give zsh a second chance.

      • Gamma@programming.dev
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 year ago

        I used to write Bash more than anything, but now the things I write are either simple enough to keep POSIX or complex enough that I miss the extra niceties Zsh provides.

        • zzz@feddit.de
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 year ago

          but now the things I write are either simple enough to keep POSIX or complex enough that I miss the extra niceties Zsh provides.

          Well said!