问题

问题

问题

在巴什中,shell_variable=值 bash child_command使得外壳变量中的环境变量子命令

这是一个内置 shell(sh 和 bash)功能,用于将 shell 变量提升为子进程中的环境变量,以及类似于 env 命令的功能吗?

试图找到解释这一点的文档,但尚未找到。如果您能提供参考,不胜感激。

霍格.sh

env | grep BUILD_ID

实施例1

BUILD_ID=hoge
bash hoge.sh

[result] (none displayed)

实施例2

BUILD_ID=hoge bash hoge.sh

[Result]
BUILD_ID=hoge

实施例3

env BUILD_ID=hogehoge bash hoge.sh 

[Result]
BUILD_ID=hogehoge

参考

答案1

POSIX:部分2.9.1 简单命令

...变量分配应导出到命令的执行环境,并且不应影响当前的执行环境...

也在几个 shell 手册中(搜索“简单命令”)


例子

变量不应影响当前的执行环境:

$ var=33; var=11 echo "$var"; echo "$var"
33
33

变量赋值应导出到执行环境:

$ var=33; var=11 sh -c 'echo "$var"'; echo "$var"
11
33

相关内容