为什么在当前目录中执行脚本时必须键入./?[重复]


0

可能重复:
为什么。默认情况下不在路径中?

这个问题可能是微不足道的,但我想知道为什么我必须在我的脚本名称之前键入点和斜杠才能执行它,即使它位于我当前的目录中。

./my_script.sh

每当我输入没有点和斜线时:

my_script.sh

我只是得到-bash:cloud_sync.sh:找不到命令

./放在脚本名称前面的原因是什么?

谢谢。


我迟到了,但你可以从你的脚本目录中将符号链接(ln -s /path/to/orig.sh / usr / bin / orig)到/ usr / bin文件夹(/ usr / bin在你的$ PATH)然后你可以输入my_script(甚至tab-completion)。
nerdwaller

Answers:


1

您需要在PATH中拥有当前目录, export PATH=${PATH}:.


2
请注意,将当前目录放在路径中会被视为存在安全风险。有一个很好的理由,这不是多用户系统的默认设置。
Hennes

我们可以更好地将用户脚本放到〜/ bin并将其添加到PATH变量中。
l1zard

我添加了当前目录作为最后一个路径,因为它有点安全,然后先将它放在首位。最好的当然是明确的,并将它们放在〜/ bin中。
吉米·海德曼
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.