我正在使用 ubuntu,我注意到除非我在主题前面加上 ,否则我的许多可运行脚本都无法运行./
。
例如,如果我有一个 perl 脚本:/home/me/script.pl
并且我当前在/home/me
,则输入script.pl
不会执行此操作,但./script.pl
会。
这是为什么?
答案1
要执行脚本,您需要输入脚本的完整路径除非脚本位于$PATH
环境变量中列出的目录之一中。通常(默认情况下).
(当前目录)不是在你的 中$PATH
,因此你需要输入./script
来执行它。
答案2
因为当前目录不在您的路径中。这是一项安全功能。如果它在您的路径中,则有人可能会删除常用命令的恶意副本,当您在该目录中时,例如,您将运行假的 sudo,而不是运行真正的 sudo。那将是一件坏事。
答案3
echo $PATH
为了使其正常工作,您的路径中必须包含当前目录(一个点)。
如果您愿意,可以使用以下命令将其添加到您的路径中。
sh/bash:
export PATH=$PATH:.
tcsh/csh:
set PATH = ($PATH .)
答案4
shell 在路径中搜索可执行文件,默认情况下./
它不在路径中。