2012-12-24 79 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: 
相關問題