'Sh-cx` - linux, bash, shell, sh का उपयोग करके एक स्क्रिप्ट वैरिएबल निर्यात करना

मैं निम्नलिखित तरीके से एक स्क्रिप्ट से एक चर निर्यात करने की कोशिश कर रहा हूँ:

sh -xc "<script here>"

लेकिन यह बिल्कुल काम नहीं कर सकता है। मैंने कई तकनीकों की कोशिश की है जैसे कि:

sh -xc "./xxx.sh"(फ़ाइल से एक परिवर्तनीय yyy निर्यात)

sh -xc "./xxx.sh && export yyy=1" (xxx.sh निकास 0 था)

sh -xc ". ./xxx.sh"

साथ ही ऊपर के कई क्रमपरिवर्तन, लेकिन उनमें से किसी पर कोई पासा नहीं है।

दुर्भाग्य से, मुझे इसके अनुरूप होना चाहिए sh -xc "<script here>" अंदाज। मेरे द्वारा निष्पादित कोई भी स्क्रिप्ट कोटेशन, फ़ाइल और / या कमांड के अंदर रखी जाएगी। इसके चारों ओर कोई रास्ता नहीं है।

क्या मैं भी पूछ रहा हूं? अगर ऐसा है, तो कैसे?

धन्यवाद!

उत्तर:

जवाब के लिए 0 № 1

आप एक शेल स्क्रिप्ट के माध्यम से निर्यात नहीं कर सकते हैं, क्योंकि शेल स्क्रिप्ट एक बाल खोल प्रक्रिया में चलती है, और केवल बाल शैल के बच्चे ही निर्यात का वारिस करेंगे।

स्रोत का उपयोग करने का कारण वर्तमान खोल को कमांड निष्पादित करना है

एक फ़ाइल में निर्यात आदेशों को रखने के लिए यह बहुत आम है .bashrc जो एक बैश स्टार्टअप पर स्रोत होगा (या अन्य गोले के लिए समान फाइलें)

लेकिन आप निम्नानुसार कर सकते हैं:

shell$ cat > script.sh
#!/bin/sh
echo export myTest=success

chmod u+x script.sh

और फिर वर्तमान खोल को आउटपुट निष्पादित करें

  shell$ `./script.sh`

shell$ echo $myTest
success

shell$ /bin/sh
$ echo $myTest
success

संबंधित सवाल
सबसे लोकप्रिय