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