是否有一种方法可以在不重复定义的情况下定义复合命令中每个命令的环境变量?例如,可以在不导出x1,x2和x3的情况下缩短这一点:
X1=foo X2=bar X3=baz command1 && X1=foo X2=bar X3=baz command2
如果您不希望环境变量也能在命令中幸存下来,一种方法是将整个命令放入子壳中:
( X1=foo; X2=bar; X3=baz; command1 && command2 ; )
如果command1
或command2
在单独的过程中运行,则可能需要导出变量,以便这些命令看到它们:
( X1=foo; X2=bar; X3=baz; export X1 X2 X3 ; command1 && command2 ; )