您的位置:首页 > 其它

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

2018-01-06 21:58 447 查看
转自:http://blog.csdn.net/a1285398438/article/details/17360207

原来除了sh 和./执行脚本方式不同外,.(和source一样)和./执行脚本也是不一样的!下面转载了一篇博文

点斜杠执行脚本是启动了另一个Shell去执行脚本(另一个进程),所以点斜杠执行脚本时,设置的环境变量会

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

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

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

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

  export Hello="Hello World" 

     ​(1)  执行命令:​  

             ​$ ./test.sh 

    ​     ​    ​$ echo $Hello

    ​        ​ 执行结果:  (空)

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

    ​(2)  执行命令:

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

    ​    ​    ​$ echo $Hello

    ​    ​    ​执行结果: Hello World

    ​    ​    对当前Shell​设置此环境变量。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: