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

来源:赵克立博客 分类: Linux 标签:Linux命令发布时间:2021-11-07 13:30:06最后更新:2021-11-07 13:31:17浏览:346
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2021-11-07 13:31:17
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章

shell

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

sh/bash

当使用sh或者bash运行shell脚本程序时,系统将创建一个子shell,我们暂且称为子shell。此时,系统中将有两个shell,一个是登录时系统启动的父shell,另一个是系统为运行脚本程序创建的子shell。当一个脚本程序运行完毕,脚本子shell将终止,返回到执行该脚本之前的父shell。这时脚本中创建的变量或者环境变量(export的变量)是在shell子中创建的,只在shell子中有效,在shell父中是无法访问的

source

source(或者.)的作用是文件包含,当使用source运行脚本程序时,系统并不会创建子shell,而是将脚本中的命令放到shell父中运行,这时脚本中创建的变量或者环境变量(export的变量)相当于是在shell父中创建的,在shell父中是可以访问的。因此使用source执行修改后的配置文件会直接生效,不需要重启

export

export 的作用是为当前shell设置环境变量,这样变量在其子shell也可以访问,当然,在其父shell中还是无法访问的普通的变量只在当前shell中可以访问,在父shell或者子shell中都无法访问export 也是 bash 的一个内置命令。它主要是用来将父 shell 里的变量导出供子 shell 使用。


它有如下特征:


1. 用 export 导出的变量放在“导出变量列表”中,它可以被子 shell (子 shell 的子 shell 也是如此)拷贝并使用。


2. 被 export 出来的变量虽然可以被子 shell 使用,但它也只是一个拷贝,而不会影响到父 shell 中的值以及其它子 shell 中的值。



微信号:kelicom QQ群:215861553 紧急求助须知
Win32/PHP/JS/Android/Python