【问题标题】:What is the difference between "source script.sh" and "./script.sh"?“source script.sh”和“./script.sh”有什么区别?
【发布时间】:2011-01-24 07:54:28
【问题描述】:

source <script>./<script> 有什么区别?

【问题讨论】:

  • 另外,那这两者和sh <script>有什么区别呢?我猜它更像./<script>

标签: linux shell unix


【解决方案1】:

source script.sh 在当前进程中运行脚本,因此即使在脚本完成后,所有变量分配都被保留为变量(并且不必显式地export'd)。

./script.sh 只是在子进程中运行脚本,脚本执行完成后分配的任何变量都会消失。

【讨论】:

  • 注意./script.sh只能将变量导出到子级,不能返回到父级。
  • 并非所有变量都是环境变量;它们只有在 exported 时才成为环境变量。普通的shell变量和环境变量都可以通过source script.sh(或. script.sh)进行更新。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2012-09-01
    • 2011-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-19
    • 2020-01-15
    • 1970-01-01
    相关资源
    最近更新 更多