我只能为复合命令定义一次环境变量吗?

时间:2014-03-06 22:15:05

标签: bash sh

有没有办法在复合命令中为每个命令定义环境变量而不重复定义?例如,可以缩短它而不导出X1,X2和X3:

X1=foo X2=bar X3=baz command1 && X1=foo X2=bar X3=baz command2

1 个答案:

答案 0 :(得分:1)

如果您不希望环境变量在命令中存活,则一种方法是将整个命令放在子shell中:

( X1=foo; X2=bar; X3=baz; command1 && command2 ; )

如果command1command2在不同的进程中运行,您可能需要导出变量以便这些命令看到它们:

( X1=foo; X2=bar; X3=baz; export X1 X2 X3 ; command1 && command2 ; )