2012-12-24 77 views
12

比方说,我有以下命令设置多个命令环境变量在bash的一行

$> MYENVVAR = MyFolder文件回声$ MYENVVAR & & MYENVVAR = MyFolder文件LS $ MYENVVAR

我的意思MYENVVAR = myfolder重复

是否可以为“& &”分隔的命令设置一次,同时保留通讯并在一条线上?

+0

您可以使用分组而不是subshel​​l ... – anishsane

回答

20

假设你确实需要它作为一个环境变量(尽管示例代码并不真的需要一个环境变量;一些shell变量不是环境变量):

(export MYENVVAR=myfolder; echo $MYENVVAR && ls $MYENVVAR) 

如果你不需要它作为一个环境变量,那么:

(MYENVVAR=myfolder; echo $MYENVVAR && ls $MYENVVAR) 

括号创建一个子shell;在子shell中设置的环境变量(和普通变量)不会影响父shell。在所示的两个命令中,该变量都被设置一次,然后被使用两次,一次被两个命令中的每一个使用。

0

你考虑使用export

export MYENVVAR=myfolder 

然后键入您的命令,如echo $MYENVVAR(这将即使在子壳工作)等

+0

第二个给''bash'运行为'sh'的语法错误。 –

+0

它应该总是在任何相似的shell中发出语法错误。 – ormaaj

2

括号产生新的理线,在这里你可以设置自己的变量:

(MYENVVAR=myfolder; echo 1: $MYENVVAR;); echo 2: $MYENVVAR; 
1: myfolder 
2: 
相关问题