如何为 bash 命令设置多个 env 变量

我应该设置 EC2 _ HOME 和 JAVA _ HOME 变量 在运行命令之前(ec2-description-region)

我怎么才能一气呵成呢?

124116 次浏览

您可以一次性为单个命令设置 vars,方法是将它们放在命令行中的命令前面:

$ EC2_HOME=/path/to/dir JAVA_HOME=/other/path ec2-describe-regions

或者,您可以将它们导出到环境中,在这种情况下,它们将为以后的所有命令设置:

$ export EC2_HOME=/path/to/dir
$ export JAVA_HOME=/other/path
$ ec2-describe-regions

作为其他 * nix 系统,您可以在 HOME 目录下的. bashrc 文件中添加如下函数。

function startec2(){
export EC2_HOME=/path/to/dir
export JAVA_HOME=/other/path
ec2-describe-regions
}

现在,您可以通过以下命令启动程序:

startec2

如果希望在同一会话中多次使用环境变量,可以使用:

export VAR1=value1 VAR2=value2 VARN=valueN

如果希望在不影响当前 bash 会话的情况下执行具有多个变量的命令,可以使用:

VAR1=value1 VAR2=value2 VARN=valueN command arg=1

用途:

sh -c "VAR1=BLA-BLA VAR2=FOO-BAR && command"

例如:

sh -c "VAR1=BLA-BLA VAR2=FOO-BAR && exec echo $VAR1 $VAR2"

产出:

BLA-BLA FOO-BAR

注意 : 在命令完成后通过 exec运行命令来终止整个 sh进程。