放置在 $PATH 文件夹中的二进制文件无法立即访问

放置在 $PATH 文件夹中的二进制文件无法立即访问

在我的文件夹中,我$PATH~/.zsh/bin一个用于小型脚本和自定义构建的可执行二进制文件的文件夹,例如,我添加了一个最近编译的工具,我称之为wercker_build_status该文件夹。然而,当我在命令行中输入时,wercker_build_status它找不到它,我必须输入文件的完整路径,~/.zsh/bin/wercker_build_status.

这并不是说文件夹中的任何内容都不起作用,我调用的脚本wifi_status就在其中,将其输入到命令行中会按预期返回 wifi 状态。

为什么即使它在我的文件夹中$PATH,我也不能只使用添加到文件夹中的文件~/.zsh/bin

答案1

$HOME在路径中使用波浪符号 ( ~),尤其是当您将新内容括PATH在双引号中时。波浪符号出现在引号中时不会展开。

测试:

$ mkdir "$HOME/t"

$ cat >"$HOME/t/foo" <<END
#!/bin/sh
echo "hello"
END

$ chmod +x "$HOME/t/foo"

$ PATH="$PATH:~/t"

$ foo
zsh: command not found: foo

$ PATH="$PATH:$HOME/t"

$ foo
hello

也可以看看:为什么波形符 (~) 不在双引号内展开?

相关内容