ZSH 不读取 $PATH

Lar*_*ara 2 zsh path shell-script

我最近决定将我的个人脚本移动到我的$HOME. 我已将此目录包含在我的$PATH变量中,但在尝试运行它们时,ZSH 以“未找到命令”响应。以下行是我附加的内容.xprofile

PATH="$PATH:~/.local/share/";export PATH
Run Code Online (Sandbox Code Playgroud)

我有一些脚本,~/.local/share/但无法在 ZSH 中执行它们,但在 bash 中它运行良好。我曾尝试将上面的 live 添加到我的.zshrc,但没有奏效。

Kus*_*nda 6

~ 不是变量,也不像变量。

Shell~在引用时通常不会扩展。您可以在任何 shell 中使用$HOME代替~来确保您获得主目录的正确路径,而不依赖于 shell 对波浪号字符的特殊处理(这是一种主要用于交互式 shell 的快捷方式)。

$HOME 确实像您期望变量的行为一样,即当它使用双引号引用时,它会扩展到您的主目录的路径。

另外请注意,这是不可能的,PATH不是已经是一个环境变量。因此不需要导出它。

zshshell 中,要添加~/.local/share到命令搜索路径的末尾,您还可以执行

path+=~/.local/share
Run Code Online (Sandbox Code Playgroud)

或者

path+=$HOME/.local/share
Run Code Online (Sandbox Code Playgroud)

数组变量path捆绑到标量变量PATH,这意味着在更新阵列path如上,所添加的元素被添加到值的末尾$PATH