一般指导(例如从这里开始)是在 shell 脚本中使用小写的 var 名称,以免与重要的 shell 环境变量(如PATH.
然而,今天我了解到 MacOS 上的 $PATH var 不区分大小写
$ echo $PATH
/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
$ path=test
$ echo $PATH
test
Run Code Online (Sandbox Code Playgroud)
这肯定不是一般的事情:
$ x=a
$ echo $X
Run Code Online (Sandbox Code Playgroud)
我认为它在某种程度上与不区分大小写的文件系统有关,但我还没有找到合理的解释来解释它是如何泄漏到变量名区分大小写的。
一般的要点是“不要用作pathvar 名称”,但我仍然想知道是否有人可以解释这种令人惊讶的行为。