Bash 中的 export 关键字

基本用法

export 命令用于设置环境变量,使其可以被当前 shell 及其子进程访问。基本语法如下:

# 定义并导出变量
export VARIABLE=value

# 或者先定义后导出
VARIABLE=value
export VARIABLE

变量作用域

1. 本地变量(Local Variables)

本地变量只在当前 shell 会话中有效,不会被子进程继承。

# 定义本地变量
local_var="仅在当前 shell 可见"

2. 环境变量(Environment Variables)

通过 export 命令定义的环境变量可以被当前 shell 及其子进程访问。

# 定义环境变量
export env_var="在当前 shell 和子进程中可见"

3. 子 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 = 环境变量

注意事项