【发布时间】:2010-04-14 00:58:13
【问题描述】:
今天我按照一些说明在 Linux 中安装软件。有一个脚本需要先运行。它设置了一些环境变量。
指令告诉我执行. ./setup.sh,但我执行./setup.sh出错了。所以没有设置环境。最后我注意到了这一点并继续前进。
我想知道这两种调用脚本的方法之间的区别。我对 Linux 完全陌生,所以请尽可能详细。
【问题讨论】:
-
仅供参考——写这些说明的人可能应该要求你写
source ./setup.sh而不是. ./setup.sh以减少歧义;你犯的错误很常见。 -
@Charles Duffy 感谢您指出这一点。是的,这些说明是供内部使用的,所以我猜它们是为大师准备的。
-
source仅适用于 Bash,而.可移植到 Bourne shell。如果说明不是 Bash 特定的,则不能使用source,即使它更具可读性。