source sh运行脚本的差别
主要有两种方式运行shell脚本
1)source test.bsh
2)sh test.bsh
1)souce运行脚本文件会在父程序中运行。各项动作都会在原本的bash内生效。运行过程不另开进程。脚本文件里设定的变量在当前shell中能够看到;
例如以下样例:
当中sh文件内容例如以下:
就是通过read命令从命令行中读取两个字符串firstname和lastname,作为一个完整的人名最后在屏幕上输出。source运行该文本文件时正确输出,source还能够用“.”直接替换;
source运行文件能够这样理解:
2)sh运行脚本文件是在当前进程另开子进程来运行脚本命令,脚本文件里设定的变量在当前shell中不能看到。使用这样的运行方式时,事实上script实在子程序的bash中运行的,当子程序完毕之后,子程序内的各项变量或者动作将会结束而不会传回到父程序中。对照第一张图我们能够得到以下的结果:
当sh文件运行完成之后。子程序bash中的全部数据便被移除。
能够这样理解
"./"运行结果和sh运行结果同样。
值得注意的是:一般当我们想要让某些写入~/.bashrc(如环境变量)生效的时候,都须要注销系统,又一次开启服务,当我们不注销系统就想要使写入生效的时候,我们就能够使用source ~/.bashrc而不是使用sh ~/.bashrc.
source sh运行脚本的差别的更多相关文章
- 使用sh运行bash脚本的奇怪问题
在同一个文件夹下有两个脚本.a.sh和b.sh,脚本内容例如以下: a.sh: echo "test for a" source b.sh b.sh: echo "tes ...
- [Shell Script]关于source和sh对于脚本执行不同
当我修改了/etc/profile文件,我想让它立刻生效,而不用重新登录:这时就想到用source命令,如:source /etc/profile对source进行了学习,并且用它与sh 执行脚本进行 ...
- [转] 用source命令执行脚本和用sh执行脚本之间的区别
from: http://blog.csdn.net/david_xtd/article/details/8012627 问题: 有很多方式可以执行脚本, 1).source test.bsh 2). ...
- 让SH/BAT脚本定位到运行目录的相对位置,实现其脚本可在任意运行目录下被正确执行
让SH/BAT脚本定位到运行目录的相对位置 实现其脚本可在任意运行目录下被正确执行 在Linux下的bash脚本 #!/bin/bash cd `` 在Windows下的BAT脚本 echo off ...
- 18.4 运行脚本 sudo ./launcher.sh 必须先给他权限 才能使用
我们发现我们每次启动服务都要打一大堆命令,ng build --watch ,nodemon server.js ,等等 凡是重复的工作,我们要可以代码完成 要想运行它呢 你必须将你运行的上述(脚本中 ...
- Linux Source命令及脚本的执行方式解析
转 http://www.51testing.com/html/38/225738-206878.html 当我修改了/etc/profile文件,我想让它立刻生效,而不用重新登录:这时就想到用sou ...
- Linux下的Source命令及脚本的执行方式解析
Linux Source命令及脚本的执行方式解析 http://blog.csdn.net/wangyangkobe/article/details/6595143 当我修改了/etc/profile ...
- Oracle12c中多宿主容器数据库(CDBs)和可插拔数据库(PDBs)新特性之运行脚本
对开发者和DBA们来说,对shell脚本批量任务的影响成了多宿主选项带来的最大改变之一.因为多宿主环境通过服务来连接到可插拔数据库,因此,依靠CRON和OS认证成了换成多宿主环境后的一个最大问题.本文 ...
- Linux Source命令及脚本的执行方式解析(转)
当我修改了/etc/profile文件,我想让它立刻生效,而不用重新登录:这时就想到用source命令,如:source /etc/profile对source进行了学习,并且用它与sh 执行脚本进行 ...
随机推荐
- [BZOJ1017][JSOI2008]魔兽地图DotR 树形dp
1017: [JSOI2008]魔兽地图DotR Time Limit: 30 Sec Memory Limit: 162 MBSubmit: 2597 Solved: 1010[Submit][ ...
- 初入IT行業,走出自我
细细算下来,我已经有半年的工作经验了... 本人毕业于武汉一所普通的一本院校,大学期间普普通通,大三一年自学了PS和Flash和静态网站制作,那时的我就是兴趣所在,但是水平一般. 大四上学期用了大半年 ...
- ES6新特性及用法笔记
1.新增数据类型Symbol.[Number.Boolean.Symbol.Null.Undefined.Object] Symbol类型的值通过Symbol函数生成,相同的Symbol函数返回的值 ...
- struts2进阶
Struts2 一.Struts的工作原理 Struts2的工作机制3.1Struts2体系结构图 Strut2的体系结构如图15所示: (图15) 3.2Struts2的工作机制 从图15可以看出, ...
- logstash filter plugin
1. 基本语法%{NUMBER:duration} %{IP:client} 2. 支持的数据类型默认会把所有的匹配都当作字符串,比如0.043, 想要转成浮点数,可以%{NUMBER:num:flo ...
- mysql里的知识
1.mysql基础 (1)mysql存储结构:数据库->表-> 数据 sql语句 (2)管理数据库: 增加: create database 数据库 default character ...
- Unity3D的主要类图
原文:http://blog.teotigraphix.com/2011/05/17/unity3d-uml-gameobject-cheat-sheet/ 1. GameObject_Structu ...
- C++ 11中几个我比较喜欢的语法(三)
随着Vsisual Studio 2013 RC版的放出,之前承诺的对C++ 11语法支持已经全部完成,本文是C++ 11中我喜欢的语法系列的最后一部分(一),(二). 非静态成员直接初始化 在C++ ...
- XCTest(二)
New tool sets are making it easier and easier to engage in genuine agile development on iOS. In part ...
- 开源 java CMS - FreeCMS2.3会员我的留言
原文地址:http://javaz.cn/site/javaz/site_study/info/2015/29631.html 项目地址:http://www.freeteam.cn/ 我的留言 从 ...