Linux下source命令详解
source命令⽤法
linux vi命令详解菜鸟教学source FileName
source命令作⽤
在当前bash环境下读取并执⾏FileName中的命令。
*注:该命令通常⽤命令“.”来替代。
使⽤范例:
source filename
# 中间有空格
. filename
source命令(从 C Shell ⽽来)是bash shell的内置命令。点命令,就是个点符号,(从Bourne Shell⽽来)是source的另⼀名称。
source(或点)命令通常⽤于重新执⾏刚修改的初始化⽂档,如 .bash_profile 和 .profile 这些配置⽂件。
举例说明:
假如在登录后对 .bash_profile 中的 EDITER 和 TERM 变量做了修改,这时就可以⽤source命令重新执⾏ .bash_profile⽂件,使修改⽴即⽣效⽽不⽤注销并重新登录。
再⽐如您在⼀个可执⾏的脚本 a.sh ⾥写这样⼀⾏代码
export KKK=111
假如您⽤  ./a.sh  执⾏该脚本,执⾏完毕后,在当前shell环境中运⾏ echo $KKK,发现没有值,但是⽤ source a.sh 来执⾏,然后再 echo $KKK,就会发现打印 111 。
原因说明
因为调⽤./a.sh来执⾏shell是在⼀个⼦shell⾥运⾏的,所以执⾏后,结构并没有反应到⽗shell⾥,但是source不同他就是在本shell中执⾏的,所以能够看到结果。
总结
source命令(从 C Shell ⽽来)是bash shell的内置命令. 点命令,就是⼀个点符号,是source的另⼀名称。这两个命令都以⼀个脚本为参数,该脚本将在当前shell的环境执⾏,即不会启动⼀个新的⼦shell。所有在脚本中设置的变量都将成为当前Shell的⼀部分。
source命令的⼀个妙⽤
在编译核⼼时,常常要反复输⼊⼀长串命令,如
make mrproper
make menuconfig
make dep
make clean
make bzImage
.......
这些命令既长,⼜繁琐。⽽且有时候容易输错,浪费你的时间和精⼒。如果把这些命令做成⼀个⽂件,
让它⾃动按顺序执⾏,对于需要多次反复编译核⼼的⽤户来说,会很⽅便。
⽤source命令可以办到这⼀点。它的作⽤就是把⼀个⽂件的内容当成是shell来执⾏。
先在/usr/src/mysh⽬录下建⽴⼀个⽂件,取名为make_command,在其中输⼊如下内容:
make mrproper &&
make menuconfig &&
make dep &&
make clean &&
make bzImage &&
make modules &&
make modules_install &&
cp arch/i386/boot/bzImge /boot/vmlinuz_new &&
cp System.map /boot &&
vi /f &&
lilo -v
⽂件建⽴好之后,以后每次编译核⼼,只需要在/usr/src/mysh下输⼊source make_command 就⾏了。这个⽂件也完全可以做成脚本,只需稍加改动即可。shell编程中的命令有时和C语⾔是⼀样的。&&表⽰与,||表⽰或。把两个命令⽤&&联接起来,如 make mrproper && make menuconfig,表⽰要第⼀个命令执⾏成功才能执⾏第⼆个命令。对执⾏顺序有要求的命令能保证⼀旦有错误发⽣,下⾯的命令不会盲⽬地继续执⾏。
source filename 与 sh filename 及./filename执⾏脚本的区别
当shell脚本具有可执⾏权限时,⽤sh filename与./filename执⾏脚本是没有区别得。./filename是因为当前⽬录没有在PATH中,所有”.”是⽤来表⽰当前⽬录的。sh filename 重新建⽴⼀个⼦shell,在⼦shell中执⾏脚本⾥⾯的语句,该⼦shell继承⽗shell的环境变量,但⼦shell新建的、改变的变量不会被带回⽗shell,除⾮使⽤export。
source filename:这个命令其实只是简单地读取脚本⾥⾯的语句依次在当前shell⾥⾯执⾏,没有建⽴
新的⼦shell。那么脚本⾥⾯所有新建、改变变量的语句都会保存在当前shell⾥⾯。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。