HeadlinesBriefing HeadlinesBriefing.com

PATH 中的 ~ 不会扩展到 HOME 目录

Hacker News •
×

一个常见的 shell 配置陷阱是使用引号内的 tilde (~) 来设置 PATH 变量。当用户在 .bashrc 或 .zshrc 中添加类似 `export PATH="$PATH:~/.local/bin/"` 的条目时,tilde 不会扩展为家目录,而是被视为字面字符,导致相对路径 `./~/.local/bin/` 被添加到环境变量。这是因为 tilde 只在未引用的以 ~ 开头的单词上进行扩展。

为了解决此问题,用户应显式使用 $HOME 变量,例如 `export PATH="$PATH:$HOME/.local/bin/"`。虽然未引用的版本 `export PATH=$PATH:~/.local/bin` 在 Bash 和 Zsh 中可用,但它很脆弱,一旦出现空格问题就会失效。可通过运行 `echo "$PATH" | grep '~'` 快速诊断问题。如果返回任何结果,则需在配置文件中将 ~ 替换为 $HOME。

来源: Hacker News · 由HeadlinesBriefing整理摘要