我记得我以前用过 brew。但现在当我尝试运行它时,我得到了
➜ ~ brew
zsh: command not found: brew
但有一个/usr/local/bin/brew
我可以运行的别名。它的位置也在我的PATH
变量中:
➜ ~ 回显 $PATH /用户/kosh/.rvm/gems/ruby-3.0.2/bin:/用户/kosh/.rvm/gems/ruby-3.0.2@global/bin:/用户/kosh/.rvm/rubies/ruby-3.0.2/bin:/usr/local/opt/gradle@6/bin:”在/usr/本地/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Users/kosh/Documents/Development/flutter/bin:/Users/kosh/.rvm/bin://Users/kosh/Library/Android/sdk/tools://Users/kosh/Library/Android/sdk/tools/bin://Users/kosh/Library/Android/sdk/platform-tools”
为什么会发生这种情况?我该如何解决?
作为 shell,我使用 Oh My Zsh。
答案1
假设:您的启动脚本中的某处有类似这样的内容:
PATH=/usr/local/opt/gradle@6/bin:”$PATH”
应该是这样的:
PATH=/usr/local/opt/gradle@6/bin:"$PATH"
此时你的$PATH
扩展为/usr/local/bin:…
。因为花括号不是 shell 独有的,它们不会在引号移除阶段被移除。实际上它们确实出现在您的新 中$PATH
。
在$PATH
您发布的内容中,与之最相似的条目/usr/local/bin
是”/usr/local/bin
不是 /usr/local/bin
. 同样//Users/kosh/Library/Android/sdk/platform-tools”
不是//Users/kosh/Library/Android/sdk/platform-tools
。
有些网站将普通引号改为花括号,显然是因为它们的目的是用来存放文献或任何非技术性文本(花括号看起来不错),而不是代码。在我看来,这种行为表明该网站不是任何代码的良好来源。也许您是从此类网站复制的。
或者,也许您已经在“更了解”的文本编辑器中编辑了其中一个启动脚本,并将常规引号更改为花引号。
您应该检查添加到 的每个脚本$PATH
,找到这些花括号并修复它们(更改为常规双引号)。并且永远不要在 shell 脚本中使用花括号。