su

2010-09-09 13 views
6

के इनपुट कमांड में पर्यावरण चर को परिभाषित करने के लिए कैसे करें इस कमांड में एक खाली आउटपुट है।su

su user -c "ABC=abc;echo $ABC" 

कोई विचार, मैं इनपुट कमांड में एक चर को कैसे परिभाषित कर सकता हूं?

उत्तर

5

एकल उद्धरणों पर अपने उद्धरण बदलें। डबल कोट्स वैरिएबल को वर्तमान वातावरण में प्रतिस्थापित करने की इजाजत देता है जहां यह अभी तक सेट नहीं है। अंतर देखने के लिए, $USER के साथ अपने संस्करण कोशिश करते हैं और इस एक के साथ उसकी तुलना:

su user -c 'ABC=abc; echo $ABC; echo $USER' 
2

एक बॉर्न शैल संस्करण का उपयोग कर:

 
ABC=abc su user -c 'echo $ABC' 

यदि नहीं, तो env का उपयोग करें।

 
env ABC=abc su user -c 'echo $ABC' 
+0

जवाब के लिए धन्यवाद, यह काम करता है, लेकिन यह वास्तव में मैं की जरूरत नहीं है। मेरे पास su कमांड के लिए काफी लंबी इनपुट स्ट्रिंग है और मुझे चर के मान को "उपयोगकर्ता" के रूप में निर्धारित करना है। –

संबंधित मुद्दे