Linux中source filename .(点)filename ./filename sh filename的区别
在shell中source filename 和 . filename是一样的,但source和 ./filename.sh的执行结果有很大区别,借用一张网上的图。如下可以看到通过./filename.sh执行shell脚本,脚本内执行的命令和设置的环境变量不影响执行shell脚本的shell环境变量,而使用source filename则会影响到执行source filename的shel
在shell中source filename 和 . filename是一样的,但source和 ./filename.sh的执行结果有很大区别,借用一张网上的图。如下
可以看到通过./filename.sh执行shell脚本,脚本内执行的命令和设置的环境变量不影响执行shell脚本的shell环境变量,而使用source filename则会影响到执行source filename的shell的环境变量。
以下是三种执行文件的方法比较
source命令用法:
source filename
作用:在当前bash环境下读取并执行filename中的命令。该filename文件可以无执行权限”
注:该命令通常用命令“.”来替代。
如:source .bash_profile 和 . .bash_profile两者等效。
source(或点)命令通常用于重新执行刚修改的初始化文档。
source命令(从 C Shell 而来)是bash shell的内置命令。
点命令,就是个点符号,(从Bourne Shell而来)。sh和bash命令用法:
sh filename bash filename
作用:打开新的子shell,读取并执行filename中的命令。该filename文件可以无“执行权限”
注:两者在执行文件时的不同,是分别用自己的shell来跑文件。
sh使用“-n”选项进行shell脚本的语法检查,使用“-x”选项实现
shell脚本逐条语句的跟踪,可以巧妙地利用shell的内置变量增强
“-x”选项的输出信息等。./的命令用法:
./filename
作用:打开一个子shell来读取并执行FileName中命令。
注:运行一个shell脚本时会启动另一个命令解释器.
更多推荐
所有评论(0)