linux - 如何在没有 ./

问题描述 投票:0回答:6

假设文件“foo.sh”具有所有权限,我只想运行当前目录中的文件:

#> ./foo.sh 

我可以更改什么/在哪里可以通过输入名称来执行文件(任何具有权限的文件):

#>foo.sh

我的想法是我总是可以这样做(在当前目录中)。如果

./file.sh
是执行文件的有效方法,则
file.sh
也可以工作。无意在全球范围内运行
file.sh

linux file execute
6个回答
0
投票

如果您想特定于本地用户执行此文件,请创建

~/bin
目录,将文件放入其中,并将此路径附加到您的
$PATH
环境中。 ':' 是分隔符 请检查以下链接。

http://www.cyberciti.biz/faq/unix-linux-adding-path/

但是如果你想在全球范围内访问它。然后将文件放入 /usr/bin 或 /usr/local/bin 中,然后检查这些路径是否已在

$PATH
中注册。添加您的权限。打开新终端尝试调用文件。


0
投票

您也可以将脚本复制到

/usr/local/bin
目录下,该目录用于用户程序。


0
投票

编辑您的

"$PATH"
变量以包含该文件所在的目录。 例如,这是我的
"$PATH"
的一部分:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/rany/bin

它包括以下目录:

  • /usr/local/bin
  • /usr/bin
  • /垃圾箱
  • /usr/local/sbin
  • /usr/sbin
  • /sbin
  • /home/rany/bin

将可执行脚本放入这些目录之一后,您只需在命令行中输入其名称即可执行它。

完成此操作后,我建议您阅读此 Bash FAQ 以获取更多信息。


0
投票

您可以将

.
添加到您的 PATH 中,以便 shell 执行当前工作目录中的任何内容。比如:

export PATH=$PATH:.

此后,您可以通过键入

来运行
foo.sh

程序
$ foo.sh

0
投票

为什么不直接将

'.'
添加到路径中,使用:
export PATH=.:$PATH

上面将运行当前目录中的任何内容。如果您想让它始终存在,请将以上行添加到您的个人资料中。

请注意,对于某些 shell,您可能需要运行两个命令:

PATH=.:$PATH
export PATH

0
投票

我更改了 PATH 以便能够在没有 / 的情况下运行它。现在,如果我运行像“./file -g”这样的文件,该文件会收到参数,但是当我在没有 ./“file -g”的情况下运行它时,它的行为就好像没有获得 -g 参数一样。为什么会出现这种情况?

© www.soinside.com 2019 - 2024. All rights reserved.