从另一个shell脚本中调用shell脚本的区别

nit*_*ian 1 linux shell scripting

我有两个shell脚本a.shb.sh在我的主目录中.在a.sh中我调用b.sh as

sh b.sh
Run Code Online (Sandbox Code Playgroud)

我也可以通过以下方式完成

. b.sh
Run Code Online (Sandbox Code Playgroud)

请告诉我调用之间的区别.

谢谢,LinuxPenseur

enn*_*ler 5

第一种方式:

sh b.sh
Run Code Online (Sandbox Code Playgroud)

创建子shell并在子shell中运行b.sh. 这样做的一个后果是,当你返回到a.sh时,b.sh中设置的任何环境变量都会消失

第二种方法:

. ./b.sh
Run Code Online (Sandbox Code Playgroud)

来源b.sh因此当b.sh返回时,b.sh中设置的任何env变量将对a.sh保持可见.