别让波浪号在 PATH 中误导你
Don't Put Tilde In Your Path

我在测试 nono 沙箱工具时,发现它警告 PATH 中存在可写入的条目:~/.local/bin/。这看似无害,实则暗藏玄机。在 ~/.bashrc 或 ~/.zshrc 中,若将 PATH 设置为 export PATH="$PATH:~/.local/bin/",波浪号 ~ 并不会被扩展为 $HOME,而是被当作字面字符处理,导致路径变为 ./~/.local/bin/。这意味着程序可能从当前目录下的 ./~/ 文件夹中执行,而非真正的家目录。这不仅是 Bash 的语法陷阱,更是潜在的安全隐患。建议立即检查你的 PATH 配置,将所有 ~ 替换为 $HOME,确保路径解析正确。
在变量赋值中,波浪号只有在未加引号且紧跟等号或冒号时才会被正确扩展为家目录路径。