Linux系统 source 命令及系统变量

一、用法

source Filename

// 在当前的 bash 环境中读取并执行Filename中的命令。同时source常用于
// 重新执行刚刚修改的文档,使其立即生效。
// source命令也常常等同于点命令(.)
// 如以下两个命令是相同的作用:

source Filename

. Filename    # . 与Filename之间有空格

二、

source命令从 C Shell 而来,是bash shell的内置命令。点命令,就是个点符号,从Bourne Shell而来,是source的另一名称。

同样的,当前脚本中配置的变量也将作为脚本的环境,source(或点)命令通常用于重新执行刚修改的初始化文档,

如 .bash_profile 和 .profile 等等。

如在登录后对 .bash_profile 中的 EDITER 和 TERM 变量做了修改,则能够用source命令重新执行 .bash_profile 中的命令而不用注销并重新登录。

source命令(从 C Shell 而来)是bash shell的内置命令。点命令,就是一个点符号,(从Bourne Shell而来)是source的另一名称。这两个命令都以一个脚本为参数,该脚本将作为当前shell的环境执行,即不会启动一个新的子进程。所有在脚本中设置的变量将成为当前Shell的一部分。

三、source filename 与 sh filename 及./filename执行脚本的区别

1、当shell脚本具有可执行权限时,用sh filename与./filename执行脚本是没有区别得。./filename是因为当前目录没有在PATH      中,所有”.”是用来表示当前目录的。
2、sh filename 重新建立一个子shell,在子shell中执行脚本里面的语句,该子shell继承父shell的环境变量,但子shell新建的、改变的变量不会被带回父shell。
3、source filename:这个命令其实只是简单地读取脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面。

四、系统变量与用户变量

1、系统变量:对所有用户有效,只需要执行其中一个即可

修改其中一个即可:
/etc/profile  
/etc/environment

执行其中一个即可:
source /etc/profile
source /etc/environment

2、用户变量,只对当前用户有效

编辑其中一个即可:
~/.profile
~/.bashrc

执行其中一个即可:
source ~/.profile
source ~/.bashrc

参考资料:

[1] https://blog.csdn.net/violet_echo_0908/article/details/52056071

[2] https://blog.csdn.net/LEON1741/article/details/81944879

猜你喜欢

转载自blog.csdn.net/Jeffxu_lib/article/details/85854104