一尘不染

“ ./somescript.sh”和“。”之间有什么区别?./somescript.sh”

linux

今天,我按照一些说明在Linux中安装软件。有一个脚本需要首先运行。它设置一些环境变量。

指令告诉我要执行. ./setup.sh,但是我执行错误了./setup.sh。因此未设置环境。最后,我注意到了这一点并继续进行。

我想知道这两种调用脚本方法的区别。我对Linux完全陌生,所以请尽可能详细。


阅读 260

收藏
2020-06-02

共1个答案

一尘不染

./setup.sh运行脚本,将启动一个新的运行脚本的外壳。新的外壳程序不会影响启动脚本的父外壳程序。

. ./setup.sh是的简写形式source ./setup.sh,它将在当前shell中运行脚本,而不是启动新的shell来运行该脚本。这意味着脚本可以更改当前外壳的行为,例如设置新的环境变量。

2020-06-02