在 zsh 中,path
是一个特殊的数组变量,其内容链接到众所周知的PATH
变量。
如此特别,事实上,定义和调用函数
f() { local -r path=42 }
导致错误f: read-only variable: path
。如果局部变量被声明为可变的(即没有-r
),一切都按预期工作。我无法用其他变量名重现此错误。
为什么会发生此错误,是故意的吗?其他名称是否存在类似规则?
我在 macOS 10.12.6 上使用 zsh 5.2 (x86_64-apple-darwin16.0)。