shell中source与sh区别】的更多相关文章

shell中使用source conf.sh,是直接运行conf.sh的命令,不创建子shell,类似与html中include,而sh是则创建子shell, 子shell里面 的变量父shell无法使用,对环境变量的修改也不影响父shell.父shell中的局部变量,子shell也无法使用, 只有父shell的环境变量, 子shell能够使用.还有一个exec conf.sh,这个与source类似,区别是exec执行完,不再执行后面的语句.   source命令的作用就是用来执行一个脚本,那…
这里记录的是在一个shell脚本里面使用. ./file.sh 和./file.sh 的区别,本文参考了http://www.lslnet.com/linux/dosc1/39/linux-283534.htm (这个蓝森林的东西应该是来源于chinaunix) 来个小实验场景一:vi file1.sh./file2.shecho $NIVEK vi file2.shNIVEK=goupiexport NIVEK chmod 755 file1.sh file2.sh $./file1.sh  …
sh新建一个子shell进程,变量在主shell中无法获取 source在当前shell中执行脚本,变量在主shell即当前shell中可以获取 例子: 1.新建一个test.sh脚本,内容为:A=1 2.然后使其可执行chmod +x test.sh 3.运行sh test.sh后,echo $A,显示为空,因为A=1并未传回给当前shell 4.运行./test.sh后,也是一样的效果 5.运行source test.sh 或者 . test.sh,然后echo $A,则会显示1,说明A=1…
http://blog.chinaunix.net/uid-14351756-id-2820651.html $( ) 与 ` ` (反引号)在 bash shell 中,$( ) 与 ` ` (反引号) 都是用来做命令替换用(command substitution)的. 所谓的命令替换与我们第五章学过的变量替换差不多,都是用来重组命令行:* 完成引号里的命令行,然后将其结果替换出来,再重组命令行.例如:[code]$ echo the last sunday is $(date -d "la…
原文 http://blog.zol.com.cn/2322/article_2321763.html $( ) 与 ` ` (反引号)在 bash shell 中,$( ) 与 ` ` (反引号) 都是用来做命令替换用(command substitution)的. 所谓的命令替换与我们第五章学过的变量替换差不多,都是用来重组命令行:* 完成引号里的命令行,然后将其结果替换出来,再重组命令行.例如:[code]$ echo the last sunday is $(date -d "last…
原因: ls -l `which sh` 提示/bin/sh -> dash 这说明是用dash来进行解析的. 改回方法: 命令行执行:sudo dpkg-reconfigure dash 在界面中选择no 再ls -l `which sh` 提示/bin/sh -> bash 修改成功,source可以用了~…
shell是你(用户)和Linux(或者更准确的说,是你和Linux内核)之间的接口程序.你在提示符下输入的每个命令都由shell先解释然后传给Linux内核. shell 是一个命令语言解释器(command-language interpreter).拥有自己内建的 shell 命令集.此外,s…
转载自:http://blog.sina.com.cn/s/blog_4da051a60102uwda.html 命令替换 在bash中,$( )与` `(反引号)都是用来作命令替换的. 命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行. exp 1 $ echo today is $(date "+%Y-%m-%d") today is 2014-07-01 $( )与` ` 在操作上,这两者都是达到相应的效果,但是建议使…
shell脚本中的变量: local一般用于局部变量声明,多在在函数内部使用. shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止. shell函数定义的变量默认是global的. 函数定义的变量可以被显示定义成local的,其作用域局限于函数内. 函数的参数是local的. 如果同名,shell函数定义的local变量会屏蔽脚本定义的global变量. source.sh../的区别 sh filename.sh与./filename…
2.2.6.1.case语句(1)shell中的case语句和C语言中的switch case语句作用一样,格式有差异(2)shell中的case语句天生没有break,也不需要break,和C语言中的switch case不同.shell中的case默认就是匹配上哪个执行哪个,不会说执行完了还去执行后面的其他case(就好像shell中的case语言默认都带了break). 2.2.6.2.调用shell程序的传参(1)C语言中可以通过main函数的argc和argv给程序传参(详情参考<4.…
shell中sh, exec, source, fork, ./的区别 1,sh sh test.sh ​ sh是通过创建子进程(subshell)去执行脚本,父进程无法使用子进程中的变量,而子进程对环境变量的修改也不会影响到父进程.父进程中的局部变量子进程也无法使用,子进程会继承父进程的环境变量; ​ 脚本不需要执行权限 2,exec exec + command ./test.sh exec ​ 使用exec执行脚本,被执行的脚本会继承当前shell的环境变量,exec相当于创建了新进程,它…
首先我们知道我们执行shell有这么几种方法 1. sh/bash使用其内置的命令集来执行一些命令,例如如下 sh demo.sh bash demo.sh 2. 使用./或者/$SHELLPATH/*.sh的方式执行 ./demo.sh /home/vagrant/shell/test.sh 采用上面的方法的话需要将该方法设置为有执行权限才能执行 3. 采用source shell.sh或者. shell.sh方法执行 source demo.sh . demo.sh 这三种方法的区别 1.文…
用户登录到Linux系统后,系统将启动一个用户shell,我们暂且称这个shell为shell父. 在这个shell父中,可以使用shell命令或声明变量,也可以创建并运行shell脚本程序. 当使用sh或者bash运行shell脚本程序时,系统将创建一个子shell,我们暂且称为shell子. 此时,系统中将有两个shell,一个是登录时系统启动的shell父,另一个是系统为运行脚本程序创建 的shell子.当一个脚本程序运行完毕,脚本shell子将终止,返回到执行该脚本之前的shell父.…
在bash shell中,source.exec以及sh都可以用来执行shell script,但是它们的差别在哪里呢? sh:父进程会fork一个子进程,shell script在子进程中执行 source:在原进程中执行,不会fork子进程 exec:在原进程中执行,但是同时会终止原进程 注:使用export会把父进程中的变量向子进程中继承,但是反过来却不行,在子进程中,不管环境如果改变,均不会影响父进程…
因为今天写了个小脚本,死活不成功,总是报文件或者目录不存在,问了一下我们马同学的正常写法,发现只有脚本头的区别,也就是今天本文要讲的#!/bin/sh与#!/bin/bash. 本文参考:https://www.cnblogs.com/aaronLinux/p/6885288.html和http://www.cnblogs.com/baizhantang/archive/2012/09/11/2680453.html 一:解释 #!/bin/sh是指此脚本使用/bin/sh来解释执行,#!是特殊…
当我修改了/etc/profile文件,我想让它立刻生效,而不用重新登录:这时就想到用source命令,如:source /etc/profile对source进行了学习,并且用它与sh 执行脚本进行了对比,现在总结一下. source命令:source命令也称为“点命令”,也就是一个点符号(.),是bash的内部命令.功能:使Shell读入指定的Shell程序文件并依次执行文件中的所有语句source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录.用法:source…
source.sh.bash../执行脚本的区别  原文:https://www.cnblogs.com/sparkbj/p/5976100.html 1.source命令用法: source FileName 作用:在当前bash环境下读取并执行FileName中的命令.该filename文件可以无"执行权限" 注:该命令通常用命令“.”来替代. 如:source .bash_profile . .bash_profile两者等效. source(或点)命令通常用于重新执行刚修改的初…
1.source命令用法: source FileName 作用:在当前bash环境下读取并执行FileName中的命令.该filename文件可以无"执行权限" 注:该命令通常用命令“.”来替代. 如:source .bash_profile . .bash_profile两者等效. source(或点)命令通常用于重新执行刚修改的初始化文档. source命令(从 C Shell 而来)是bash shell的内置命令. 点命令,就是个点符号,(从Bourne Shell而来).…
原文地址:http://blog.csdn.net/caesarzou/article/details/7310201 source命令用法: source FileName 作用:在当前bash环境下读取并执行FileName中的命令.该filename文件可以无"执行权限" 注:该命令通常用命令“.”来替代. 如:source .bash_profile . .bash_profile两者等效. source(或点)命令通常用于重新执行刚修改的初始化文档. source命令(从 C…
add by zhj: 主要不同是,source是在当前shell中执行脚本,而sh, bash, ./是在当前shell的child shell中执行脚本 原文:http://www.cnblogs.com/pcat/p/5467188.html 在linux里,source.sh.bash../都可以执行shell script文件,那它们有什么不同吗? ----------- 1.source source a.sh 在当前shell内去读取.执行a.sh,而a.sh不需要有"执行权限&q…
背景 今天写几个shell脚本,使用一个公共的config.sh,但是export出来的东西在另外的*.sh中不能直接用,这让我很惆怅,印象中就是可以export出来给别的shell用啊,只要不是下一次就行啊... 查资料 果然是我图样图森破啊,知识半吊子水都没啊. 查到这样一篇http://blog.csdn.net/dance_rise/article/details/8573560 结论 ./test.sh 就是bash test.sh,在子进程中执行 . ./test.sh与source…
一..sh文件介绍 .sh为Linux的脚本文件,我们可以通过.sh执行一些命令,可以理解为windows的.bat批处理文件. 二.点命令(.) .命令和source是同一个命令,可以理解为source的缩写,简称点命令. 三.sh/base/source/.命令执行.sh文件的区别 假如有一个文件test.sh,脚本内容如下 #!/bin/bash echo "step 1 sleeping" sleep 200 echo "step 2 sleeping" s…
发现在shell里面执行source,提示找不到命令.所以,我取搜了一些资料,总结一下. 一. 脚本中,source找不到命令--------------是因为用了sh执行脚本,而debian系统的sh指向dash.需要更改系统sh指向: (1)cd /bin (2)mv sh sh.old (3)ln -s sh bash 二. 为什么没有在控制台界面看到source的结果?--------因为控制台是一个shell,脚本是他的子shell.两者不是同一个环境. 分清楚几个shell执行的环境…
原创部分: 1.获取返回值 #This is a shell to Deploy Project #!/bin/bashcheck_results=`ps -ef | grep "java"`//变量获取语句执行结果check_results=`cat a.sh` echo "command(ps-ef) results are: $check_results" 2.获取当前文件所在路径 #This is a shell to Deploy Project#!/bi…
在shell脚本里面export的环境变量,在set里面竟然看不到.为什么在shell脚本里面用export设置环境变量之后,当shell执行完了,用set命令看不到呢?但是你如果直接在终端里export 环境变量用set是看到的. 这里要说一下shell的执行方法了,举个例子来讲:一个shell脚本test.sh的内容为: export AA=123 当我们执行test.sh的时候,是当前终端所在的shell fork一个子shell然后执行test.sh的,执行完了再返回终端所在的shell…
VC中Source Files, Header Files, Resource Files,External Dependencies的区别 区别: Source Files 放源文件(.c..cpp)程序的实现代码全放在这里: Header Files 放头文件(.h)声明放在这里: Resource Files 资源文件(.rc)放图标.图片.菜单.文字之类的,主要用来做界面的东东一般都放这里: External Dependencies 除上三种以外的,程序编译时用到的文件全放这里. 头文…
在linux里,source.sh.bash../都可以执行shell script文件,那它们有什么不同吗? ----------- 1.source source a.sh 在当前shell内去读取.执行a.sh,而a.sh不需要有"执行权限" source命令可以简写为"." . a.sh 注意:中间是有空格的. 2.sh/bash sh a.sh bash a.sh 都是打开一个subshell去读取.执行a.sh,而a.sh不需要有"执行权限&q…
shell中为啥与C语言有区别呢?弄成一样的不是很好么,其实不然,shell提供很多操作,这些操作不单单是执行程序或者命令,在很多时候是执行脚本的,简单的shell就是脚本编程,它的主要目的是处理文件相关操作,这样如果是单纯的C语言就没办法完成了,所以需要加入很多能够操作命令的东西,对此下面进行了简单的说明: 1.在shell中所有关于变量的操作需要用((  ))来区分,例如: a=10; b=20; ((c=a+b)); echo ${c}; 上面的例子中(( c=a+b))这里用了双括号是为…
centos   shell脚本编程1 正则  shell脚本结构  read命令  date命令的用法  shell中的逻辑判断  if 判断文件.目录属性  shell数组简单用法 $( ) 和${ } 和$(( )) 与  sh -n  sh -x  sh -v 第三十五节课 Shebang/Sha-bang在计算机科学中, Shebang (也称为Hashbang)是一个由井号和叹号构成的字符串行(#!), 其出现在文本文件的第一行的前两个字符. 在文件中存在Shebang的情况下, 类…
Shell中可以用来实现变量代换的命令有两种,一种是由反引号括起来的一条命令另一种是由$()括起来一条命令,shell先执行这条命令,然后见输出结果立刻代换到当前命令行中. 例如定义一个变量存放date命令的输出: $DATE=`data` $echo $DATE 命令代换也可以用$()表示:$DATE=$(date)  输出的效果是一样的.我们知道系统是不会存在冗余的的命令,那么这两种方式有什么区别呢?下面我们再看一个例子: i=1 time1=Fri Aug 23 11:35:21 a=$(…