./(点斜杠)与. (点空格)执行脚本的区别

./(点斜杠)

./(点斜杠)的意思是执行当前目录下的某个可执行文件

. (点空格)

. (点空格)某个脚本文件,相当于利用source文件执行这个脚本。

source命令用法:source FileName
作用:在当前bash环境下读取并执行FileName中的命令,该命令通常用命令“. ”来替代。如:source .bash_rc 与 . .bash_rc 是等效的。

source命令与shell scripts的区别:
source在当前bash环境下执行命令,而scripts是启动一个子shell来执行命令。这样如果把设置环境变量(或alias等等)的命令写进scripts中,就只会影响子shell,无法改变当前的BASH,所以通过文件(命令列)设置环境变量时,要用source 命令。

原来除了sh 和./执行脚本方式不同外,.(和source一样)和./执行脚本也是不一样的!

点斜杠执行脚本是启动了另一个Shell去执行脚本(另一个进程),所以点斜杠执行脚本时,设置的环境变量会随着进程的退出而结束,其中的环境变量设置对当前Shell不起作用。

点空格点斜杠执行脚本,是相当于source ./执行脚本,source是执行脚本当中的命令,也就是说在当前进程中执行命令,所以其中的环境变量的设置会对当前Shell其作用。例如:如下test.sh脚本(Ubuntu默认Shell为bash)

export Hello="Hello World"

     ​(1)  执行命令:​  

             ​$ ./test.sh 

    ​     ​    ​$ echo $Hello

    ​        ​ 执行结果:(空)

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

    ​(2)  执行命令:

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

    ​    ​    ​$ echo $Hello

    ​    ​    ​执行结果:Hello World

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

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值