在当前目录上运行脚本时如何省略“ ./”


10

在互联网上的一些教程中,他们可以在当前目录上运行脚本,而无需执行以下操作:

./script

您如何忽略这一点?我正在使用CentOS 5.6 x64。我想这样运行

script


3
请注意,这几乎总是一个坏主意,特别是对于root用户。
David Schwartz

1
./背后的全部目的/故事是什么?
皮特

我只是好奇,为什么它总是需要有./
Aivan Monceller

最后的评论可能是一个单独的问题,恕我直言-了解运行程序的总体情况很重要!
rozcietrzewiacz 2011年

4
@Pete(和Aivan):在Linux / UNIX中,Shell仅在知道程序路径的情况下运行程序(无论是使用您指定的路径还是通过搜索PATH变量)。它不像Windows那样假定您要搜索当前目录。它通过PATH变量精确搜索您要搜索的内容。'。' 是对当前目录的引用。因此,当您键入“ ./script.sh”时,您正在告诉它路径。
Kasius 2011年

Answers:


26

任何:

  1. 将当前工作目录添加到您的PATH :(PATH=${PATH}:.这被认为存在安全风险)
  2. 明确地将包含脚本的路径添加到PATH变量中(如果对该目录的写访问受到限制,这不会带来安全风险)
  3. 将您的脚本放入PATH已经指向的正确位置(〜/ bin,/ usr / local / 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.