"source script.sh"和"./script.sh"有什么区别?

Aro*_*vit 31 unix linux shell

source <script>和之间有什么区别./<script>

Amb*_*ber 42

source script.sh在当前进程中运行脚本,因此即使在脚本完成之后,所有变量赋值仍保留为变量(并且不必明确地export'd).

./script.sh 只需在子进程中运行脚本,任何已分配的变量在脚本完成后消失.

  • 请注意,`./ script.sh`只能将变量导出到子节点,而不能返回父节点. (3认同)
  • 并非所有变量都是环境变量; 它们只是在"导出"时才成为环境变量.普通的shell变量和环境变量都可以通过`source script.sh`(或`.script.sh`)进行更新. (2认同)

kla*_*ang 6

源脚本将改变您当前的环境,./ script不会.

(编辑:脚本必须可执行才能使用./)