Shell脚本用.和./执行的区别

linux中一个文件是根据其是否具有执行属性来判断他是否可以直接运行的。就像windows下的exe一样如果我们要执行某一个文件,可以先将其权限修改为可执行(必须是所有者或者root才能修改)。然后通过用sh来执行该脚本或者./脚本名。但有时候我们并不想修改文件权限,可能我们也没有那个权限,所以我们可以使用.点号+文件名来临时执行一个脚本而无须修改权限。

在Linux系统中存在大量的脚本,其中你会看到大量这个用source命令(从 C Shell 而来)是bash shell的内置命令。点命令,就是个点符号,(从Bourne Shell而来)是source的另一名称。同样的,当前脚本中配置的变量也将作为脚本的环境,source(或点)命令通常用于重新执行刚修改的初始化 文档,如 .bash_profile 和 .profile 等等。例如,假如在登录后,对.bash_profile 中的 EDITER 和 TERM 变量做了修改,则能够用source命令重新执行 .bash_profile 中的命令而不用注销并重新登录。 source命令的作用就是用来执行一个脚本,那么: source a.sh 同直接执行 ./a.sh 有什么不同呢,比如您在一个脚本里export $KKK=111 ,假如您用./a.sh执行该脚本,执行完毕后,您运行 echo $KKK ,发现没有值,假如您用source来执行 ,然后再echo ,就会发现KKK=111。因为调用./a.sh来执行shell是在一个子shell里运行的,所以执行后,结果并没有反应到父shell里,但是 source不同他就是在本shell中执行的,所以能够看到结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值