का उपयोग कर पर्यावरण चर प्राप्त करें यहां मैंने एक सी प्रोग्राम लिखा है जो कॉल का उपयोग कर hi.sh
फ़ाइल निष्पादित करता है।सी कोड
यहाँ मैं इस्तेमाल किया . ./hi.sh
तो मैं एक ही खोल में इस स्क्रिप्ट को निष्पादित और फिर getenv फ़ंक्शन का उपयोग वातावरण चर प्राप्त करने की कोशिश करना चाहते हैं, लेकिन यहाँ मैं मैं क्या उम्मीद से अलग उत्पादन हो रही है।
hi.sh
फ़ाइल
export TEST=10
return
मतलब जब मैं सिस्टम कॉल का उपयोग कर इस hi.sh
फ़ाइल को चलाने में शामिल है, अपने export TEST
ही खोल में 10 के लिए मूल्य तय करता है। इसके बाद, मैं इस चर मूल्य को प्राप्त करने का प्रयास कर रहा हूं लेकिन इसके NULL
मान दिए गए हैं।
और यदि मैं . ./hi.sh
जैसे कंसोल से मैन्युअल रूप से इस स्क्रिप्ट को चलाता हूं तो यह ठीक काम करता है और मुझे getenv("TEST")
फ़ंक्शन का उपयोग करके TEST
का 10 मान मिलता है।
कोड:
#include <stdio.h>
int main()
{
system(". ./hi.sh");
char *errcode;
char *env = "TEST";
int errCode;
errcode = getenv(env);
printf("Value is = %s\n",errcode);
if (errcode != NULL) {
errCode =atoi(errcode);
printf("Value is = %d\n",errCode);
}
}
उत्पादन:
Value is = (null)
मैं कैसे कार्यक्रम खोल में टेस्ट चर निर्यात कर सकते हैं? यदि system()
विभिन्न शैल में कमांड निष्पादित करता है तो मैं एक पर्यावरण चर प्राप्त करने के लिए सी प्रोग्राम कोड का उपयोग कैसे कर सकता हूं जिसे system()
कॉल के माध्यम से बुलाए गए खोल द्वारा निर्यात किया जाता है?
तो मैं इस लक्ष्य को कैसे प्राप्त कर सकता हूं? – user1089679
मैं प्रोग्राम शैल में टेस्ट वैरिएबल कैसे निर्यात कर सकता हूं? – user1089679
@ उपयोगकर्ता 1089679 अपने सी प्रोग्राम को चलाने से पहले अपनी स्क्रिप्ट (पर्यावरण स्थापित करें) स्रोत करें। इस प्रकार पर्यावरण चर का उपयोग करने के लिए डिजाइन किए गए थे। –