我使用的是 Mac OS 10.8。我/sw/fink/bin/init.sh
使用命令运行了脚本bash
,该命令应该使文件夹成为当前会话变量fink/bin
的一部分。$PATH
fink 命令不起作用,因此我使用.
被告知与该命令等效的命令再次运行脚本source
;我现在能够在没有绝对路径的情况下调用 fink。
为什么.
有效而 无效bash
?是不是因为sh
和bash
命令使用它们自己的临时$PATH
变量运行?
答案1
bash somescript
将启动一个新bash
shell,评估您的脚本,然后退出。脚本将看到您当前环境的副本,但脚本结束时所有更改都将被丢弃。
. somescript
或者source somescript
将在您当前上下文中评估脚本,因此对现有环境变量的更改或新变量的设置将被保留。