频道栏目
首页 > 系统 > Linux > 正文
SHELL脚本运行的几种方法以及区别
2017-04-15 14:06:02           
收藏   我要投稿

SHELL脚本运行的几种方法以及区别

给脚本加上执行权限chmod u+x a.sh, 而后就可以直接用全路径来执行脚本了,比如当前文件夹下用./a.sh,如果如果脚本所在目录在PATH环境变量之中, 则直接用a.sh即可(这和运行我们自己编写的程序是一个道理)

sh/bash ./a.sh 这种情况不需要脚本具有执行权限

以上两种执行方式都是在子shell中执行的,也就是说当前shell需要启动另外一个shell,用来执行a.sh内的命令

source ./a.sh

. ./a.sh(注意前面的 . )

以上两种执行方式是在当前shell下执行,并不需要建立子shell

source和 . 命令的作用:用来执行一个脚本

前两种方式和后两种方式的另外区别:如果你在一个脚本里export $KKK=111 ,如果你用./a.sh执行该脚本,执行完毕后,你运行

echo $KKK ,发现没有值,如果你用source来执行 ,然后再echo

,就会发现KKK=111。因为调用./a.sh来执行shell是在一个子shell里运行的,所以执行后,结构并没有反应到父shell里,但是

source不同它就是在本shell中执行的,所以可以看到结果。

执行脚本时是在一个子shell环境运行的,脚本执行完后该子shell自动退出

一个shell中的系统环境变量只对该shell或者它的子shell有效,该shell结束时变量消失(并不能返回到父shell中)

用export定义的变量会被复制到该shell的子shell中

不用export定义的变量只对该shell有效,对子shell也是无效的

点击复制链接 与好友分享!回本站首页
上一篇:linux下彻底卸载mysql 图解教程
下一篇:CentOS5.4+Ice3.4.2+python2.7.2
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站