Linux Shell局部变量与环境变量深度实操

📅 2026/7/8 10:22:48
Linux Shell局部变量与环境变量深度实操
一、前言Shell 变量是 Linux 运维、脚本开发的核心基础。很多初学者分不清局部变量 和 环境变量 的区别也不清楚父子 Shell 之间变量的传递规则、变量永久配置方法、PATH 作用、数组用法。本文通过完整可复现的 Xshell 实验从零讲透 Shell 所有常用变量机制所有命令均可直接复制运行。二、Shell 变量整体知识体系Shell 变量主要分为两大类局部变量与全局环境变量。除此之外还有系统内置环境变量、永久环境变量、数组变量构成完整的 Shell 变量体系。所有变量行为都遵循一个核心机制子 Shell 是独立进程变量默认不共享仅环境变量可被复制继承。三、局部变量详解临时、不继承定义规则直接使用 变量名值 定义的变量就是局部变量。重点语法等号两边绝对不能加空格带空格字符串必须加引号。局部变量特点仅当前终端 Shell 有效子 Shell 无法读取。子 Shell 中定义的局部变量退出后直接消失父 Shell 完全看不到。关闭终端后所有局部变量自动销毁。实验父子 Shell 局部变量验证父Shell定义局部变量local_test“我是局部变量”echo $local_test进入子Shellbash子Shell无法读取局部变量echo $local_test退出子Shellexit父Shell变量仍然存在echo $local_test实验结论局部变量不支持父子进程传递仅当前 Shell 自己使用。四、环境变量详解export 全局变量作用使用 export 可以将局部变量升级为环境变量可以被子 Shell 继承是 Shell 跨进程传递变量的唯一方式。重要核心原理环境变量的继承是 复制机制不是共享机制。父 Shell 的环境变量会复制一份到子 Shell子 Shell 修改变量只会修改自己的副本无法反向修改父 Shell。实验export 环境变量完整流程父Shell定义并导出环境变量env_test“父Shell的环境变量”export env_testecho $env_test进入子Shellbash子Shell可以正常继承读取echo $env_test子Shell修改变量env_test“子Shell修改的值”export env_testecho $env_test退回父Shellexit父Shell值完全不变echo $env_test实验结论子 Shell 无论怎么修改、重新 export都不会影响父 Shell。五、永久环境变量配置~/.bashrc作用说明临时 export 的变量关闭终端就失效。如果需要永久生效需要写入用户 Shell 配置文件 ~/.bashrc。终端启动时会自动加载该文件内的所有变量、别名、PATH 配置。实操配置永久变量编辑配置文件vim ~/.bashrc在文件末尾添加export MY_PERM_VAR“永久环境变量测试”刷新配置立即生效source ~/.bashrc任意终端均可读取echo $MY_PERM_VAR六、系统核心环境变量 PATHPATH 作用PATH 是系统最重要的内置环境变量定义了命令搜索目录。执行命令时系统会依次在 PATH 的目录中查找可执行文件。如果自己写的脚本不在 PATH 目录中必须写绝对路径才能执行加入 PATH 后可以直接运行。实操临时追加 PATH查看当前PATHecho $PATH自定义目录加入PATH临时生效export PATHPATH:/home/user/myscript3.永久追加PATH将exportPATHPATH:/home/user/myscript 3. 永久追加 PATH 将 export PATHPATH:/home/user/myscript3.永久追加PATH将exportPATHPATH:自定义路径 写入 ~/.bashrcsource 刷新即可永久生效。七、Shell 数组变量常用运维技巧数组可以一次性存储多个数据适合批量操作文件、日志、服务等场景。完整实操代码定义数组arr(“Linux” “Shell” “Variable”)读取单个元素echo ${arr[0]}读取所有元素echo ${arr[]}获取数组长度echo ${#arr[]}遍历数组for item in ${arr[]}doecho $itemdone八、核心知识点总结局部变量仅当前 Shell 有效子 Shell 无法继承终端关闭立即失效。环境变量 export可被子 Shell 继承子 Shell 修改仅影响自身不回传父 Shell。永久变量 .bashrc写入配置文件并 source 刷新所有终端永久生效。PATH 变量决定命令搜索路径是自定义脚本快捷执行的关键。数组变量批量存储数据常用于 Shell 脚本循环处理任务。九、结语局部变量、环境变量、永久配置、PATH、数组构成了 Shell 变量的全部核心内容也是 Linux 运维和 Shell 脚本开发的基础。掌握父子 Shell 变量隔离机制能够彻底理解变量生效范围、脚本执行环境、终端配置原理。