पर्यावरण चर जो कि bashrc में परिभाषित किए गए थे, वे / bin / bash तक पहुंच योग्य नहीं हैं


0

में चर को परिभाषित किया है /etc/bashrc निम्नलिखित मामले में:

export VAR1=yadayada

मेरे पास बैश स्क्रिप्ट है runner.sh नीचे दिए गए कोड के साथ = & gt; हम वहां एक और स्क्रिप्ट कहते हैं run_test.sh जो एक अजगर स्क्रिप्ट लॉन्च कर रहा है। पायथन लिपि में ऊपर उल्लिखित env वेरिएबल का उपयोग किया गया है।

यहाँ है runner.sh सामग्री:

#!/bin/bash
exec /home/john/run_test.sh

जब लॉन्च हो रहा है runner.sh शेल से मुझे एक त्रुटि मिलती है जो एनवी चर परिभाषित नहीं है।

अगर मैं उसी को लॉन्च करता हूं runner.sh Crontab से, env चर परिभाषित करने के साथ Crontab में भी सब कुछ सही हो जाता है।

क्या आप कृपया बता सकते हैं कि शेल रन से हम एनवी चर को "एकत्रित" क्यों नहीं कर रहे हैं bashrc, और यह कैसे तय किया जा सकता है?


1
source /etc/bashrc
Ipor Sircer

जवाबों:


0

इसे इस्तेमाल करे,

जब आप / etc / bashrc (btw लिनक्स के किस संस्करण का उपयोग कर रहे हैं, उसे संपादित करने के बाद? मैं आमतौर पर इस तरह का सामान ~ / .bashrc में डाल देता हूं), निम्न कमांड चलाने का प्रयास करें।

source /etc/bashrc

और फिर अपना रनर.श स्क्रिप्ट चलाएं ।।

अब दौड़ो

set

यह देखने के लिए कमांड करें कि सूची में पर्यावरण चर प्रदर्शित किया गया है या नहीं।


0

मैंने वही करने की कोशिश की जो आप कर रहे हैं, यह मेरे सिस्टम पर ठीक काम करता है। आप अजगर का उपयोग करके पर्यावरण चर तक पहुंचने का प्रयास कैसे कर रहे हैं? सुनिश्चित करें कि pyhton os.environ विधि का उपयोग कर रहा है।

पहले पर्यावरण चर की जाँच करें

[john@tilki ~]$ grep VAR /etc/bashrc
export VAR1=bla
[john@tilki ~]$ env | grep VAR
VAR1=bla

लिपियों की सामग्री

[john@tilki ~]$ cat runner.sh
#! /bin/bash

echo $VAR1

python  print_var.py
[john@tilki ~]$ cat print_var.py
import os

print os.environ['VAR1']

रनर.श स्क्रिप्ट चलाएं

[john@tilki ~]$ ./runner.sh
bla
bla
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.