使用一个环境变量,它就像:
bash$> foo=1 echo "$foo"
1
[编辑:如下所述,即使这项工作没有成功,但只是因为$ foo之前由其他一些试验设定。应该给予" unset foo"审判之间。]
但是如果需要在启动命令的同一命令行中设置多个环境变量呢? 像这些不做的工作:
bash$> foo=1 bar=2 echo "$foo $bar"
1
bash$> foo=1 && bar=2 echo "$foo $bar"
1
bash$> (foo=1;foo=2) && echo "$foo $bar"
1
bash$> (foo=1 && foo=2) && echo "$foo $bar"
1
有可能吗? (用脚本很明显)
答案 0 :(得分:4)
我假设您不希望为当前shell设置这些环境变量,以便后续命令不会受到这些环境变量的影响。那怎么样:
$ foo=1 bar=2 bash -c 'echo $foo - $bar '
1 - 2
$ echo $foo
<no output>
$ echo $bar
<no output>
请注意,环境变量的范围仅限于bash子shell。如接下来的两个命令所示,这些env变量不会在当前shell中结束。
如果您不关心最终在当前shell中的env变量,那么只需以下就足够了:
$ foo=1; bar=2; echo "$foo $bar"
1 2
$ echo $foo - $bar
1 - 2
答案 1 :(得分:-1)
$ foo=5;bar=6; echo "$foo $bar"
5 6