一个使用 *nix 的新手(我实际上在 OS X 10.5 中使用了 bash shell),我想知道这个可能非常简单的答案是什么......
当我编写一个脚本(称为 my_script)并将其保存到当前目录时,为什么我必须在其名称前放置一个句点和一个正斜杠才能运行它?像这样:
./my_script
shell 不能告诉我要从当前目录运行它吗?Windows 似乎可以处理这种情况。
干杯本
当前目录不会自动出现在执行路径中。这部分是历史,部分是安全措施。
Unix 被设计为一个多用户系统。如果您的工作目录当前位于系统的许多用户共享的某个文件夹中,并且您的当前目录自动位于系统目录之前的执行路径中,那么当您运行时,standard_system_command您可能会在该共享目录中留下其他用户之一文件夹而不是标准的系统命令。
Windows 并不是作为多用户系统开始的,因此命令提示符具有不同的默认行为。
我认为你不应该在你的路径中包含 ./ 。如果您创建了一个经常运行的脚本,那么您应该将它放在一个共享文件夹中,例如 /usr/local/bin,或者您添加到 PATH 中的个人文件夹中,例如 ~/bin。您还可以在其中一个文件夹中放置符号链接或创建别名。