Bourne Shell 环境

在命令执行的开始时为命令知晓的所有变量(及其关联的值)组成其环境。 此环境包含命令从其父进程继承的变量和在调用命令的命令行上作为关键字参数指定的变量。

Shell 向其子进程传递作为内置 export 命令的自变量命名的变量。 此命令将命名的变量同时放置在 Shell 及其所有将来的子进程的环境中。

关键字参数是以赋值的格式出现的“变量 - 值”对,通常在命令行的过程名之前(但另见 set 命令的标志)。 这些变量将放置在所调用的过程的环境中。

请参阅以下示例:
  • 考虑显示两个变量的值(保存在名为 key_command 的命令文件中)的以下过程:
    # key_command
    echo $a $b
    以下命令行产生显示为如下的输出:
    Input                              Output
    a=key1   b=key2  key_command       key1 key2
    a=tom    b=john  key_command       tom john

过程的关键字参数不包含在 $# 中存储的参数计数中。

过程可以访问其环境中的任何变量的值。 但是,如果它更改任何这些值,那么更改将不在 Shell 环境中反映。 更改对于正在讨论的过程是本地的。 要将更改放置在进程传递到其子进程的环境中,那么必须导出该进程中的新值。

请参阅以下示例:
  • 要获取可从当前 Shell 导出的变量的列表,请输入以下命令:
    export
  • 要获取当前 Shell 中的只读变量的列表,请输入以下命令:
    readonly
  • 要获取当前环境中的“变量-值”对的列表,请输入以下命令:
    env

有关用户环境的更多信息,请参阅 /etc/environment 文件