当使用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 使用。
它有如下特征:
Bash,Unixshell的一种,在1987年由布莱恩·福克斯为了GNU计划而编写。1989年发布第一个正式版本,原先是计划用在GNU *** 作系统上,但能运行于大多数类Unix系统的 *** 作系统之上,包括Linux与Mac
OS X v10.4都将它作为默认shell。
Bash是一个命令处理器册拿灶,通常运行于文本窗口中,并能执行用户直接输入的命令。Bash还能从文件中读取命令,这样的文件称为脚本。和其他Unix
shell
一样,它支持文件名替换(通配符匹配)、州扮管道、here文档、命令替换、变量,以及条件判断和循环遍历的结构控制语句。包括关键字、语法在内的基本特性全部是从sh借鉴过来的。其他特性,例如历史命令,是从csh和ksh借敏含鉴而来。总的来说,Bash虽然是一个满足POSIX规范的shell,但有很多扩展。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)