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

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

设想

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

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

export PATH="~/Dev/ProductivityScripts:$PATH"

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

alec@my_host:~$ capsalt
SUCCESS!

但是,如果我输入,which capsalt我不会得到任何输出。

which大多数事情都有效。

alec@my_host:~$ which git
/usr/bin/git

问题

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

答案1

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

使用

PATH="$HOME/Dev/ProductivityScripts:$PATH"

反而。HOME是一个环境变量,并像往常一样在双引号内扩展。另请注意,由于PATH已经导出,因此不需要再次导出(通过它并没有什么坏处)。

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

也可以看看为什么不用“哪个”呢?那该用什么呢?

相关内容