今天运行一个脚本,显示一个变量为空,但是在实行之前已经设置了该变量,后来咨询指导人,告诉我说需要在设置变量前添加export。查看了资料,详解如下:
用户登录到Linux系统后,系统将启动一个用户shell。在这个shell中,可以使用shell命令或声明变量,也可以创建并运行shell脚本程序。运行shell脚本程序时,系统将创建一个子shell。
此时,系统中将有两个shell,一个是登录时系统启动的shell,另一个是系统为运行脚本程序创建的shell。当一个脚本程序运行完毕,脚本shell将终止,返回到执行该脚本之前的shell。
在子shell中定义的变量只在该子shell内有效。如果在一个shell脚本程序中定义了一个变量,当该脚本程序运行时,这个定义的变量只是该脚本程序内的一个局部变量,其他的shell不能引用它,要使某个变量的值可以在其他shell中被改变,可以使用export命令对已定义的变量进行输出。
命令将使系统在创建每一个新的shell时,定义这个变量的一个拷贝。这个过程称之为变量输出。
结论:
1、执行脚本时是在一个子shell环境运行的,脚本执行完后该子shell自动退出;2、一个shell中的系统环境变量才会被复制到子 shell中(用export定义的变量);3、一个shell中的系统环境变量只对该shell或者它的子shell有效,该shell结束时变量消失 (并不能返回到父shell中)。3、不用export定义的变量只对该shell有效,对子shell也是无效的。
分享到:
相关推荐
**Export命令**的作用是将变量标记为全局变量,使其能够在子shell中使用。这通常在shell脚本中非常有用,尤其是在需要跨shell共享数据的情况下。下面详细介绍如何使用`export`命令: ##### 4.1 基本语法 ```bash ...
本文将详细解释Shell变量和创建子Shell的过程,并通过实例加深理解。 首先,了解Shell环境中的两种Shell是必要的:LoginShell和非LoginShell。LoginShell是在用户登录时启动的Shell,它通常会读取用户的配置文件,...
环境变量可以使用 export 命令来设置。 在 Linux 系统中,shell 变量是一种非常重要的概念,它允许用户存储和重复使用有用的信息,提高工作效率。了解 shell 变量的使用和管理,可以帮助用户更好地使用 Linux 系统...
在Linux中,环境变量可以通过`export`命令来设置,并且可以在shell脚本中进行读取和修改。 #### 三、环境变量配置文件详解 1. **/etc/environment** - 这个文件包含了全局的环境变量设置。它被`login`程序读取并...
shell 脚本环境变量可以通过多种方式来设置和使用,例如使用 export 命令来设置环境变量,使用 ${变量名} 来获取环境变量的值等。 参数 ---------- 环境变量的参数可以是字符串、数字、数组等多种类型。环境变量...
了解和熟练使用这些Shell变量对于日常的系统管理和自动化任务至关重要,因为它们允许我们定制Shell行为、存储和传递信息以及在不同的Shell上下文中保持状态。熟悉环境变量的设置和使用尤其重要,因为它可以方便地...
但需要强调的是,export命令设置的环境变量只在当前shell会话中有效,一旦退出当前会话,设置的环境变量就会消失。 举个例子,如果你在一个shell中设置了环境变量并导出,然后在同一个shell中执行echo命令查看环境...
通过理解并熟练掌握这些Shell变量和概念,初学者能够更有效地编写和调试Shell脚本,提高自动化任务的效率。记得在实际应用中,适时地设置环境变量可以使脚本更具通用性,而位置参数变量则能帮助我们灵活处理用户输入...
环境变量在Linux系统中扮演着重要角色,命令`export`用于显示或设置环境变量,例如修改`HISTORYSIZE`来改变历史记录的容量。使用`su`命令可以临时改变用户身份,执行需要特定用户权限的操作。 查看系统信息方面,`...
### 练习Shell变量、重定向、管道等相关命令 在Linux和Unix系统中,Shell脚本是一种非常强大的工具,用于自动化任务处理、系统管理和数据处理等。熟练掌握Shell中的变量、重定向和管道操作对于提高工作效率至关重要...
2. **shell变量的作用域** - **局部变量**:只在当前`shell`会话或脚本中有效,一旦会话结束或脚本执行完毕,变量就会消失。 - **全局变量**:全局变量在整个`shell`进程中都是可见的,包括子进程。可以通过`...
使用`export`命令可以将一个普通变量转换为环境变量,例如`export PATH=$PATH:/my/new/path`。局部变量只在当前Shell会话或函数内有效。 ### 六、Shell命令与变量 许多Shell命令可以与变量一起使用,例如`echo`...
Linux Shell变量知识点: 1. 变量概念: 在Linux Shell编程中,变量是存储数据的基本单元。变量可以看作是一个容器,用于临时存储字符串、数字等数据类型,包括但不限于路径、命令结果等。变量通过赋值操作符“=”...
### Linux超级基础系列——Shell变量(本地变量与环境变量) #### 一、Shell与Shell变量简介 在Linux操作系统中,Shell是一种用户与操作系统交互的重要工具,它可以解释用户的命令,并将其传递给内核或其他应用...
了解并熟练掌握这些基本的Shell变量知识,对于编写高效、可靠的Shell脚本至关重要。通过结合条件语句、循环结构和其他Shell特性,你可以创建出功能强大的自动化工具,提高日常Linux系统管理的效率。在实际应用中,...
8. **环境变量**:如`PATH`、`HOME`等,它们存储系统信息,可以通过`export`命令设置。 9. **权限管理**:`chmod`用于改变文件或目录的权限,`chown`和`chgrp`更改文件所有者和组。 10. **进程管理**:`ps`显示...
从DB中取检索值传递给shell,生成环境变量 1. 编写myshellpara.sql 通过spool 执行一个SQL读取所要的值,结果保存在myshellvar_export.sh set feedback off; set heading off; set pagesize 0; set linesize 1000; ...
用户可以通过“export”命令设置或修改环境变量。 6. **数组**:在Bash中,数组是一种存储多个值的数据结构。可以创建和操作数组,这对于处理多元素列表非常有用。 7. **函数**:Shell支持自定义函数,可以在脚本...
- 使用 export 命令可以将本地环境变量导出到全局环境中 - 使用 unset 命令可以移除环境变量 3. PATH 环境变量: - PATH 环境变量定义了 shell 在哪里查找您在命令行中输入的命令 - 可以在现有的 PATH 环境变量...