2012-12-24 15 views
12

मान लीजिए कि मैं आदेश के बाद की है चलोबैश एक लाइनर में एक से अधिक आदेश के लिए वातावरण चर स्थापना

$> MYENVVAR = MyFolder गूंज $ MYENVVAR & & MYENVVAR = MyFolder ls $ MYENVVAR

मेरा मतलब है कि MYENVVAR = MyFolder दोहराता

यह संभव है कि यह दोनों "& &" अलग आदेश के लिए एक बार स्थापित करने के लिए है, जबकि कॉम रखने है और एक लाइन पर?

+0

आप सबहेल के बजाय समूहिंग का उपयोग कर सकते हैं ... – anishsane

उत्तर

20

मान लीजिए कि आपको वास्तव में इसे पर्यावरण चर के रूप में चाहिए (भले ही उदाहरण कोड की आवश्यकता नहीं है एक पर्यावरण चर; कुछ खोल चर वातावरण चर नहीं हैं):

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

आप एक वातावरण चर, तो के रूप में यह की जरूरत नहीं है:

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

कोष्ठकों एक उप खोल बनाएँ; सब-शैल में सेट पर्यावरण चर (और सादा चर) माता-पिता खोल को प्रभावित नहीं करते हैं। दिखाए गए दोनों आदेशों में, चर एक बार सेट किया जाता है और फिर दो बार प्रत्येक आदेश द्वारा दो बार उपयोग किया जाता है।

0

आप

export MYENVVAR=myfolder 

तरह export उपयोग करने पर विचार echo $MYENVVAR (है कि उप गोले में भी काम करेगा) तो अपने आदेश टाइप आदि

+0

दूसरा ''sh'' के रूप में चल रहे' bash' में एक वाक्यविन्यास त्रुटि देता है। –

+0

इसे किसी भी समान खोल में हमेशा वाक्यविन्यास त्रुटि देना चाहिए। – ormaaj

2

कोष्ठक नई प्रक्रिया के अंडे, जहां आप अपने स्वयं के चर सेट कर सकते हैं क्या :

(MYENVVAR=myfolder; echo 1: $MYENVVAR;); echo 2: $MYENVVAR; 
1: myfolder 
2: