linux执行shell命令Linuxsource命令
通常⽤法:source filepath 或 . filepath
功能:使当前shell读⼊路径为filepath的shell⽂件并依次执⾏⽂件中的所有语句,通常⽤于重新执⾏刚修改的初始化⽂件,使之⽴即⽣效,⽽不必注销并重新登录。例如,当我们修改了/etc/profile⽂件,并想让它⽴刻⽣效,⽽不⽤重新登录,就可以使⽤source命令,如source /etc/profile。
source命令(从 C Shell ⽽来)是bash shell的内置命令;点命令(.),就是个点符号(从Bourne Shell⽽来)是source的另⼀名称。这从⽤法中也能看出来。source filepath 与 sh filepath 、./filepath的区别:
当shell脚本具有可执⾏权限时,⽤sh filepath与./filepath是没有区别的。./filepath是因为当前⽬录没有在PATH中,所有"."是⽤来表⽰当前⽬录的。
sh filepath 会重新建⽴⼀个⼦shell,在⼦shell中执⾏脚本⾥⾯的语句,该⼦shell继承⽗shell的环境变量,但⼦shell是新建的,其改变的变量不会被带回⽗shell,除⾮使⽤export。
source filename其实只是简单地读取脚本⾥⾯的语句依次在当前shell⾥⾯执⾏,没有建⽴新的⼦shell。那么脚本⾥⾯所有新建、改变变量的语句都会保存在当前shell⾥⾯。
举例说明:
新建⼀个test.sh脚本,内容为:A=1;
修改其可执⾏权限:chmod +x test.sh;
运⾏sh test.sh后,echo $A,显⽰为空,因为A=1并未传回给当前shell;
运⾏./test.sh后,也是⼀样的效果;
运⾏source test.sh 或者 . test.sh,然后echo $A,则会显⽰1,说明A=1的变量在当前shell中;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论