我有 2 个虚拟机。一个是 debian lenny,一个是 Ubuntu。在 debian 的不同文件夹中有一个名为“two”的脚本(名称“two”相同,但不同文件夹中的内容略有不同),当我转到该文件夹时,我只需输入 two 并回车即可运行它。当我将相同的脚本复制到 Ubuntu 时,即使授予它执行权限,它仍然无法通过简单地输入 two 来运行。我必须输入 ./two 才能使其工作。有什么方法可以在它们各自的文件夹中输入 two,并且脚本无需 ./ 即可运行?
答案1
您可以将当前目录添加到您的路径中:
PATH="$PATH:."
这样,当前目录将始终位于 shell 搜索路径中。
你可以将上面的代码放在你的.bashrc
或.bash_profile
答案2
您必须将程序/目录添加到您的小路。
.bash_profile 中设置的路径只能在 bash 登录 shell ( ) 中设置bash -l
。如果您将路径放入其中,.profile
它将可用于您的整个桌面会话。这意味着甚至 metacity 也会使用它。
例如~/.profile
:
if [ -d "$HOME/bin" ] ; then
PATH="$PATH:$HOME/bin"
fi
顺便说一句,您可以通过查看其中的环境来检查进程的 PATH 变量/proc/[pid]/environ
。(将 [pid] 替换为中的数字ps axf
)
答案3
与其在 PATH 中添加 .,不如添加“two”所在的目录。例如,如果 two 实际上是 /usr/local/bin/two,那么你应该说
PATH=$PATH:/usr/local/bin
如果您可能有许多不同的程序(如两个),那么您可能希望将它们全部放在一个公共目录中,而不必为每个程序在路径中添加一个新目录。