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 ] && echorm || 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.
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.