export 命令用于设置环境变量,使其可以被当前 shell 及其子进程访问。基本语法如下:
# 定义并导出变量
export VARIABLE=value
# 或者先定义后导出
VARIABLE=value
export VARIABLE
本地变量只在当前 shell 会话中有效,不会被子进程继承。
# 定义本地变量
local_var="仅在当前 shell 可见"
通过 export 命令定义的环境变量可以被当前 shell 及其子进程访问。
# 定义环境变量
export env_var="在当前 shell 和子进程中可见"
当创建子 shell(例如通过 bash 脚本或命令替换)时,父 shell 的环境变量会被复制到子 shell 中,但子 shell 对这些变量的修改不会影响父 shell。
# 父 shell 中
export PARENT_VAR="原始值"
# 在子 shell 中修改
(PARENT_VAR="新值"; echo $PARENT_VAR) # 输出: 新值
# 回到父 shell,变量保持不变
echo $PARENT_VAR # 输出: 原始值
下面是一个展示变量作用域的例子:
#!/bin/bash
# 本地变量
local_var="本地变量"
# 环境变量
export env_var="环境变量"
echo "在父 shell 中:"
echo "local_var = $local_var"
echo "env_var = $env_var"
# 创建子进程
bash -c 'echo "在子 shell 中:"; echo "local_var = $local_var"; echo "env_var = $env_var"'
输出结果将是:
在父 shell 中:
local_var = 本地变量
env_var = 环境变量
在子 shell 中:
local_var =
env_var = 环境变量