• palordrolap@kbin.social
      link
      fedilink
      arrow-up
      4
      ·
      9 months ago

      Are you sure it doesn’t work on zsh? It’s valid POSIX shell code, and like bash, zsh is a superset of POSIX, at least if I remember correctly.

      This is not to goad you into destroying your filesystem. Replace the rm with something relatively harmless like echo "BANG! You're dead!" if you decide to test it.

      • mitchty@lemmy.sdf.org
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        9 months ago

        Key here is the outer [] and interaction of $[], test doesn’t have == by default in standard posix, so no this isn’t posix shell or bourne compatible. Tis but another bashism. I could probably force zsh into a more bourne mode to try it but its definitely not portable bourne shell its bash.

        $ [ $[ $RANDOM % 6 ] == 0 ] && echo rm || echo ok
        zsh: = not found
        $ zsh --version
        zsh 5.9 (x86_64-pc-linux-gnu)
        

        == should be -eq for this to be posix/bourne portable, you could use = but -eq is for numeric comparisons so not quite right.