shell命令中用source 和sh(或者bash)执行脚本的区别,以及expo
用户登录到Linux系统后,系统将启动一个用户shell,我们暂且称这个shell为shell父。 在这个shell父中,可以使用shell命令或声明变量,也可以创建并运行shell脚本程序。 ? 当使用sh或者bash运行shell脚本程序时,系统将创建一个子shell,我们暂且称为shell子。 此时,系统中将有两个shell,一个是登录时系统启动的shell父,另一个是系统为运行脚本程序创建 的shell子。当一个脚本程序运行完毕,脚本shell子将终止,返回到执行该脚本之前的shell父。 这时脚本中创建的变量或者环境变量(export的变量)是在shell子中创建的,只在shell子中有效,在shell父中是无法访问的 ? 当使用source运行脚本程序时,系统并不会创建子shell,而是将脚本中的命令放到shell父中运行, 这时脚本中创建的变量或者环境变量(export的变量)相当于是在shell父中创建的,在shell父中是可以访问的。 因此使用source执行修改后的配置文件会直接生效,不需要重启 ? export 的作用是为当前shell设置环境变量,这样变量在其子shell也可以访问,当然,在其父shell中还是无法访问的 普通的变量只在当前shell中可以访问,在父shell或者子shell中都无法访问 ? export 也是 bash 的一个内置命令。它主要是用来将父 shell 里的变量导出供子 shell 使用。 它有如下特征: 1. 用 export 导出的变量放在“导出变量列表”中,它可以被子 shell (子 shell 的子 shell 也是如此)拷贝并使用。 2. 被 export 出来的变量虽然可以被子 shell 使用,但它也只是一个拷贝,而不会影响到父 shell 中的值以及其它子 shell 中的值。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 在Angular2 * ngFor迭代中,如何仅输出数组中的唯
- Angular router url返回斜杠
- unix – Amazon EC2的替代工具?
- CXF动态客户端调用webservice实例
- 【layoutit!】基于 bootstrap 实现可视化布局工
- angularjs – $parser.unshift ??这是如何工作的
- shell 学习第二十七天----退出状态和 if 语句
- angular – cors-anywhere.herokuapp.com无法正常
- CXF webService 调用报错: “Cannot create a se
- 使用wsimport命令生成webService客户端代码实例