Shell: '!' 的参数太多

Shell: too many argument by '!'

n='!' && [ -n ${n} ] && echo "n=$n"

生成以下消息

[: too many arguments

为什么?

编辑:

我正在使用 zsh

➔ echo $ZSH_VERSION
5.0.7

(含 oh-my-zsh

似乎对我有用:

☻  n='!' && [ -n ${n} ] && echo "n=$n"
n=!

~
☻  echo $ZSH_VERSION
5.0.8

(有prezto)

这可能与 zsh 版本本身有关,因此可用作 'answer'。