在 bash 中运行可执行脚本时,有什么方法可以避免使用点斜杠?

在 bash 中运行可执行脚本时,有什么方法可以避免使用点斜杠?

假设我有一个脚本。

chmod +x myscript

现在我要运行它

./myscript

但是有什么办法吗我可以通过输入来运行它

myscript

???

答案1

我遇到了同样的问题,到现在似乎还没有明确的答案。

这个问题的解决方法是将 添加export PATH=.:$PATH到您的.bash_profile。这将在搜索命令时将当前目录添加到 unix 搜索路径中。了解安全风险这样做。

答案2

将脚本所在目录的路径添加到 PATH 变量中:

export PATH=$PATH:/path/to/directory

答案3

在任何 /bin/、/usr/bin 等中创建脚本文件的符号链接。

ln -s /path_to_script/myscript /usr/bin/myscript 

答案4

将脚本放入主目录中的目录中。然后检查是否~/bin已添加到您的。它可能已经添加到了(尽管您可能需要注销并重新登录)。bin~/binPATH

你可以将 PATH 改为包含.,但这样做很危险。这会导致安全问题。例如

最明显的。 如果你将 PATH 设置为首先查找.:那么如果目录中a有一个可执行文件ls做了坏事。然后你输入cd a; ls。然后就会发生坏事。

我只记得一个方便的例子。如果你将 PATH 设置为.最后查看:然后你创建一个名为的程序test,当你运行它时似乎什么都没有发生(这是因为它正在运行具有更高优先级的程序,并且没有输出,只有一个退出代码)。也可能存在一个问题,如果安装了新软件,这个新软件可能会掩盖你的程序(尽管这与 PATH 末尾的程序test没有什么不同)。~/bin

我家里有两个目录:~/bin位于 PATH 末尾和~/bin/overridePATH 开头。~/bin/override` 大部分是空的。

相关内容