2011-01-11 273 views

回答

5

第一种方式:

sh b.sh 

创建一个子shell和子shell中运行b.sh。其中一个这样做的后果是,当你回到a.sh

第二种方法b.sh设置任何环境变量将会完全消失:

. ./b.sh 

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

+0

完美..感谢ennuikiller :) – 2011-01-11 04:21:39

1

第二种方法称为“采购”,它将脚本拉入并在同一个shell中执行。

您会这样做的原因有两个:速度,所以第二个脚本可以在第一个脚本中设置环境变量。通常在运行脚本或程序时,它不能改变调用者的环境。

采购速度更快,因为它不需要分流和启动另一个shell进程。你可以看到它在某些系统上用于/ etc/init/rc脚本,但性能差异对于大多数用途可能并不重要。采购脚本时,信号处理也有一些细微之处。

+0

谢谢blueshift – 2011-01-11 04:22:59

相关问题