命令“which”不显示自定义路径位置的输出

Ale*_*lec 2 terminal which

设想

我在 GitHub 上有一个 ProductivityScripts 项目,当我安装 Linux (Debian 9) 时,我将此文件夹添加到PATH以方便使用。

即,我将以下行添加到~/.bashrc

export PATH="~/Dev/ProductivityScripts:$PATH"
Run Code Online (Sandbox Code Playgroud)

有用。我现在可以从任何地方按名称从该文件夹内运行脚本。

alec@my_host:~$ capsalt
SUCCESS!
Run Code Online (Sandbox Code Playgroud)

但是,如果我输入,则which capsalt没有输出。

which大多数事情都有效。

alec@my_host:~$ which git
/usr/bin/git
Run Code Online (Sandbox Code Playgroud)

不应该which也跟踪手动添加到 PATH 的位置可用的脚本吗?或者还有其他原因导致这不起作用?

Kus*_*nda 5

这很可能是由于~没有充当双引号内的变量,并且which没有对波浪号进行自己的扩展。

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

反而。HOME是一个环境变量,并像往常一样在双引号内展开。另请注意,由于PATH已经导出,因此不需要再次导出(通过它不会造成伤害)。

有关波浪号的更多信息:为什么波浪号 (~) 不在双引号内展开?

另请参阅为什么不使用“which”?那用什么?