为什么要使用"./helloworld"而不是直接使用"helloworld"在终端中运行我的程序?

12 浏览
0 Comments

为什么要使用"./helloworld"而不是直接使用"helloworld"在终端中运行我的程序?

由于问题的提问方式,我认为“。”代表当前目录,那么为什么我们不能直接输入helloworld来运行程序呢?

0
0 Comments

为什么在终端中运行程序时需要使用./helloworld而不是直接使用helloworld?

原因是因为当前目录('.')没有添加到环境变量的$PATH中,$PATH是包含可执行文件搜索路径的列表。要查看你的$PATH变量,可以输入以下命令:

echo $PATH

这很可能是出于安全原因,以防止执行命名为系统或其他受信任安装的可执行文件。我曾经在加入'.'到$PATH的系统上工作过,至少会导致一些令人困惑的时刻(test实用程序是一个常见的意外替代候选者)。

出于这些原因,我建议不要将'.'追加到$PATH中。

进一步说明,不将'.'添加到$PATH中是一件好事。想象一下,如果当前目录中有一个名为ls的程序,而你想要列出文件,那么将会调用本地的ls程序而不是/bin/ls。

0