Linux中export和source命令
Posted 拾月凄辰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux中export和source命令相关的知识,希望对你有一定的参考价值。
export命令
export命令用于将shell变量输出为环境变量(全局变量),或者将shell函数输出为环境变量。
一个变量创建时,它不会自动地为在它之后创建的shell进程所知。而命令export可以向后面的shell传递变量的值。当一个shell脚本调用并执行时,它不会自动得到原为脚本(调用者)里定义的变量的访问权,除非这些变量已经被显式地设置为可用。export命令可以用于传递一个或多个变量的值到任何后继脚本。
使用 export KKK=11 来将KKK输出为环境变量(全局变量),可以使用 unset KKK 来删除环境变量KKK
source命令
source命令用法
source FileName
source命令作用
在当前bash环境下读取并执行FileName中的命令。
*注:source命令也称为“点命令”,也就是一个点符号(.)。source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。该命令通常用命令“.”来替代。
使用范例:
- source filename
- . filename(中间有空格)
source命令(从 C Shell 而来)是bash shell的内置命令。点命令,就是个点符号,(从Bourne Shell而来)是source的另一名称。
同样的,当前脚本中配置的变量也将作为脚本的环境,source(或点)命令通常用于重新执行刚修改的初始化文档,如 .bash_profile 和 .profile 等等。
例如,假如在登录后对 .bash_profile 中的 EDITER 和 TERM 变量做了修改,则能够用source命令重新执行 .bash_profile 中的命令而不用注销并重新登录。比如您在一个脚本里export KKK=111
,假如您用./a.sh执行该脚本,执行完毕后,您运行 echo $KKK
,发现没有值,假如您用source来执行 ,然后再echo,就会发现KKK=111。因为调用./a.sh来执行shell是在一个子shell里运行的,所以执行后,结构并没有反应到父shell里,但是source不同他就是在本shell中执行的,所以能够看到结果。
source命令(从 C Shell 而来)是bash shell的内置命令。点命令,就是一个点符号,(从Bourne Shell而来)是source的另一名称。这两个命令都以一个脚本为参数,该脚本将作为当前shell的环境执行,即不会启动一个新的子进程。所有在脚本中设置的变量将成为当前Shell的一部分。
以上是关于Linux中export和source命令的主要内容,如果未能解决你的问题,请参考以下文章
shell命令中用source 和sh(或者bash)执行脚本的区别,以及export的作用