我今天正在执行一个 .sh 脚本。它以前缀“./.sh”执行,我有点困惑,因为它也可以在没有 ./ 的情况下执行。但为什么需要使用 ./
你能解释一下为什么使用 ./ 来运行 .sh 脚本吗?
答案1
需要./
告诉 bash 解释器脚本位于何处。bash 解释器将检查一组固定的目录来运行命令。
如果您的脚本不在这些目录之一中,那么除非您指定路径,否则它将找不到您的脚本。这./
告诉 bash 解释器该脚本位于当前目录中。
您还可以使用完整路径从任何其他目录运行该脚本。
例如,如果脚本位于 中,则从./script.sh
内部运行与从任何地方/path/to
运行相同。/path/to/script.sh
/path/to
您可以运行echo $PATH
以获取 bash 解释器将检查的所有目录的列表。如果您移动脚本或将符号链接放在其中一个目录中,您将能够仅使用文件名来执行它script
。
答案2
使用“./”意味着要求运行文件。但是,文件必须是可执行的,否则它将无法运行。
如果您的文件不可执行,则必须在命令前加上要运行它的程序。对于您的 sh 脚本,它可能是:“/bin/sh myscript.sh”。