zsh 中 PATH 中的用户目录:~不起作用

Dan*_*ark 6 zsh path macos

我在我的 .zshrc 中这样做

   PATH="~/scripts:$PATH"
Run Code Online (Sandbox Code Playgroud)

如果我这样做,echo $PATH它会出现在路径中的第一件事中。然而,此目录不包含在可执行路径中(也不用于制表符完成)。我究竟做错了什么? ls ~/scripts按预期显示目录。

编辑:虽然这有效......我想~在路径中不起作用?

#PATH="~/scripts:$PATH"
PATH="/Users/yar/scripts:$PATH"
Run Code Online (Sandbox Code Playgroud)

Dan*_*ark 10

使用$HOME来代替。

PATH="$HOME/scripts:$PATH"
Run Code Online (Sandbox Code Playgroud)

  • PATH 中`~` 的扩展是一种令人憎恶的bashism。PATH 搜索库函数`execlp` 或`execvp` 不扩展`~`,因此使用它们在PATH 中查找和运行程序的其他程序也将无法搜索`~` 条目。 (3认同)
  • 我认为 `~` 是一种命令行便利。它不应该用于扩展的脚本和变量值。 (3认同)