shell命令中用source 和sh(或者bash)执行脚本的区别,以及export的作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell命令中用source 和sh(或者bash)执行脚本的区别,以及export的作用相关的知识,希望对你有一定的参考价值。

参考技术A 用户登录到Linux系统后,系统将启动一个用户shell,我们暂且称这个shell为shell父。在这个shell父中,可以使用shell命令或声明变量,也可以创建并运行shell脚本程序。

当使用sh或者bash运行shell脚本程序时,系统将创建一个子shell,我们暂且称为shell子。此时,系统中将有两个shell,一个是登录时系统启动的shell父,另一个是系统为运行脚本程序创建的shell子。

当一个脚本程序运行完毕,脚本shell子将终止,返回到执行该脚本之前的shell父。这时脚本中创建的变量或者环境变量(export的变量)是在shell子中创建的,只在shell子中有效,在shell父中是无法访问的source(或者.)的作用是文件包含,当使用source运行脚本程序时,系统并不会创建子shell,而是将脚本中的命令放到shell父中运行,这时脚本中创建的变量或者环境变量(export的变量)相当于是在shell父中创建的,在shell父中是可以访问的。
因此使用source执行修改后的配置文件会直接生效,不需要重启export 的作用是为当前shell设置环境变量,这样变量在其子shell也可以访问,当然,在其父shell中还是无法访问的普通的变量只在当前shell中可以访问,在父shell或者子shell中都无法访问。

export 也是 bash 的一个内置命令。它主要是用来将父 shell 里的变量导出供子 shell 使用。
它有如下特征:

以上是关于shell命令中用source 和sh(或者bash)执行脚本的区别,以及export的作用的主要内容,如果未能解决你的问题,请参考以下文章

shell中的source和直接执行sh的区别

Shell脚本无法使用cd命令

exec和source的简单区别

执行shell脚本三种方法的区别:(sh、exec、source)

关于shell指令source的,急!!!

linux 中如何执行脚本?