码迷,mamicode.com
首页 > 系统相关 > 详细

shell 脚本各种执行方式(source ./*.sh, . ./*.sh, ./*.sh)的区别

时间:2016-06-22 11:10:27      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:source   export   被子   

结论一: ./*.sh的执行方式等价于sh ./*.sh或者bash ./*.sh,此三种执行脚本的方式都是重新启动一个子shell,在子shell中执行此脚本。

结论二: .source ./*.sh和 . ./*.sh的执行方式是等价的,即两种执行方式都是在当前shell进程中执行此脚本,而不是重新启动一个shell 而在子shell进程中执行此脚本。

验证依据:没有被export导出的变量(即非环境变量)是不能被子shell继承的

验证结果:

 

[root@localhost ~]#name=hashlinux       //定义一般变量  

[root@localhost ~]# echo ${name}  

hashlinux  

[root@localhost ~]# cat test.sh      //验证脚本,实例化标题中的./*.sh  

#!/bin/sh  

echo ${name}  

[root@localhost ~]# ls -l test.sh    //验证脚本可执行  

-rwxr-xr-x 1 root root 23 Feb  6 11:09 test.sh  

[root@localhost ~]# ./test.sh        //以下三个命令证明了结论一  

  

[root@localhost ~]# sh ./test.sh  

  

[root@localhost ~]# bash ./test.sh  

  

[root@localhost ~]# . ./test.sh     //以下两个命令证明了结论二  

hashlinux  

[root@localhost ~]# source ./test.sh  

hashlinux  

[root@localhost ~]#  


本文出自 “江湖笑笑生” 博客,请务必保留此出处http://hashlinux.blog.51cto.com/9647696/1791564

shell 脚本各种执行方式(source ./*.sh, . ./*.sh, ./*.sh)的区别

标签:source   export   被子   

原文地址:http://hashlinux.blog.51cto.com/9647696/1791564

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!