The new POSIX requires reserved words be recognised even after assignment words. For example, in the command line:
$ foo=bar if
the token "if" is now treated as a reserved word "if", which results in a syntax error when the command line is parsed. Previously, the token was treated as a command name word and typically causing a command-not-found error at runtime.
Currently, only zsh seems to support the new POSIX behavior. Other shells (bash, dash, ksh, mksh, and current yash) behave as defined in the previous POSIX.
The new POSIX requires reserved words be recognised even after assignment words. For example, in the command line:
the token "if" is now treated as a reserved word "if", which results in a syntax error when the command line is parsed. Previously, the token was treated as a command name word and typically causing a command-not-found error at runtime.
Currently, only zsh seems to support the new POSIX behavior. Other shells (bash, dash, ksh, mksh, and current yash) behave as defined in the previous POSIX.
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_10