在Ubuntu中点斜杠和点空格点斜杠执行脚本之间的区别

本文详细解释了在Shell脚本中使用点符号(.)和source命令与直接使用./或sh命令执行脚本的不同之处。重点在于环境变量的设置如何影响当前Shell进程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自:http://blog.youkuaiyun.com/a1285398438/article/details/17360207

原来除了sh 和./执行脚本方式不同外,.(和source一样)和./执行脚本也是不一样的!下面转载了一篇博文
  1. 点斜杠执行脚本是启动了另一个Shell去执行脚本(另一个进程),所以点斜杠执行脚本时,设置的环境变量会

  2. 随着进程的退出而结束,其中的环境变量设置对当前Shell不起作用。

  3. 点空格点斜杠执行脚本,是相当于source ./执行脚本,source是执行脚本当中的命令,也就是说在当前进程中

    执行命令,所以其中的环境变量的置会对当前Shell其作用。

       ​例如: 如下test.sh脚本(Ubuntu默认Shell为dash)

  1.   export Hello="Hello World" 

     ​(1)  执行命令:​  

             ​$ ./test.sh 

    ​     ​    ​$ echo $Hello

    ​        ​ 执行结果:  (空)

    ​      ​   所以设置此环境变量,没有对当前Shell起作用。

    ​(2)  执行命令:

    ​    ​    ​$ . ./test.sh 或 . test.sh 或 source test

    ​    ​    ​$ echo $Hello

    ​    ​    ​执行结果: Hello World

    ​    ​    对当前Shell​设置此环境变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值