当作为 sh 启动时,Zsh 不执行大括号扩展?

YOL*_*OLT 2 shell zsh sh brace-expansion

Zsh 不执行大括号扩展,但仅在使用/bin/sh链接调用时才执行。

$ /bin/sh --version
zsh 5.8 (x86_64-apple-darwin20.0)
$ zsh --version
zsh 5.8 (x86_64-apple-darwin20.0)
$ /bin/sh -c "echo {1..3}"
{1..3}
$ zsh -c "echo {1..3}"
1 2 3
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?

xhi*_*nne 5

大括号扩展不是传统 (POSIX) shell 的功能。它特定于 bash 和 zsh。

当作为 调用时/bin/sh,bash 和 zsh 的行为类似于 POSIX shell,这就是大括号扩展不起作用的原因。