• palordrolap@kbin.social
    link
    fedilink
    arrow-up
    4
    ·
    3 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
      3 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.