可能重复:
what is the difference between “./somescript.sh” and “. ./somescript.sh”
请说明shell命令之间的区别。 script.sh vs ./script.sh其中script.sh是一个shell脚本。
由于
答案 0 :(得分:4)
差异很简单
. script.sh
使用您当前的shell执行shell脚本,因此您在脚本中执行的所有更改(如更改目录或变量)都将影响正在运行的shell
./script.sh
另一方面,将启动一个新shell来执行该脚本。这通常是启动脚本的更好方法
答案 1 :(得分:0)
要添加上面Fabian给出的答案,
您可以通过查看
的输出来测试它echo $$
在两个模式中执行script.sh
之前和之后。您将看到与process id
此外,当您使用. script.sh
时
之前在执行extern
中定义的所有shell
变量仍然可用
而./script.sh
这些extern
变量将无法用于新shell