मैं पाथ पर्यावरण चर के लिए एक रास्ता कैसे जोड़ सकता हूं?


11

मैं PATHपर्यावरण चर के लिए एक रास्ता जोड़ना चाहते हैं ?

मैंने कोशिश की है export PATH=/mypath:$PATHऔर यह काम करता है। लेकिन अगली बार जब मैं टर्मिनल शुरू करता हूं, तो मेरा नया रास्ता PATHपर्यावरण चर नहीं है।

मैं PATHपर्यावरण चर के लिए एक रास्ता कैसे जोड़ सकता हूं ? और अगली बार जब मैं टर्मिनल शुरू करूंगा तो यह भी होना चाहिए।


मुझे अब इसके साथ समस्या है, पहले जो काम किया था वह अब काम नहीं करता है।

मैंने कोशिश की है:

echo 'export GRADLE_HOME=/Users/jonas/gradle-1.2/' >> ~/.profile
echo 'export PATH=GRADLE_HOME/bin:$PATH' >> ~/.profile

दो पर्यावरण चर जोड़ने के लिए। फिर मेरी ~/.profileसामग्री में यह सामग्री है:

export GRADLE_HOME=/Users/jonas/gradle-1.2/
export PATH=GRADLE_HOME/bin:$PATH

लेकिन जब मैं एक नई टर्मिनल विंडो शुरू करता हूं और gradle(जिस कमांड को मैंने जोड़ा है PATH) टाइप करता हूं, मुझे एक संदेश मिलता है कि कमांड मौजूद नहीं है। अगर मैं इससे कमांड चलाता हूँ तो /Users/jonas/gradle-1.2/binयह ठीक काम करता है!


अगर आपको कुछ गड़बड़ करनी है, तो यह भी देखें: अपना
पैठ

1
पथ (दूसरा निर्यात) के लिए काम $ GRADLE_HOME साथ होना चाहिए
nohillside

जवाबों:


5

echo 'export PATH=/my/path:$PATH' >> ~/.bash_profile चाल चलनी चाहिए!

यदि आप उपयोग करते हैं echo 'export PATH=/my/path:$PATH' > ~/.bash_profile, या ऐसी कोई भिन्नता है, तो आप अपनी प्रोफ़ाइल की सामग्री को ओवरराइट कर लेंगे!


9

जब एक टर्मिनल खुलता है तो OSX निम्नलिखित फाइलों को पढ़ता है:

/etc/profile
~/.bash_profile
~/.bash_login   
~/.profile     

इसलिए अपने रास्ते को इनमें से किसी एक में रखें। मैं आम तौर पर परिवर्धन डालता हूं~/.bash_profile


2
धन्यवाद, मैंने इस्तेमाल कियाecho 'export PATH=/mypath:$PATH' >> ~/.profile
जोनास

3

@RobZolkos द्वारा बताई गई जगहों के अलावा, लॉगिन शेल /etc/pathsअंदर और फाइलों में भी दिखता है /etc/paths.d/। इन फ़ाइलों में प्रति पंक्ति एक पथ प्रविष्टि।

देखें /etc/profileऔर मैन्युअल पृष्ठ के लिए path_helper


ठीक है धन्यवाद! लेकिन सबसे बड़ी समस्या यह थी कि रास्ता कैसे जोड़ा जाए। लेकिन मैंने पायाecho 'export PATH=/mypath:$PATH' >> ~/.profile
जोनास

@ जोनास: मुझे एहसास हुआ कि आपकी समस्या हल हो गई है। मेरा जवाब भविष्य के पाठकों के लाभ के लिए था, इसलिए वे उनके लिए उपलब्ध सभी विकल्पों को देख सकते हैं।
हेराल्ड हैन्च-ऑलसेन

2

पुराने सवाल लेकिन, MacOS X केटालिना उपयोगकर्ताओं के लिए:

बनाएं / संपादित करें ~/.zshenv:

# comment for yourself
PATH="$PATH:to/your/path"

ध्यान दें कि यह संशोधित PATHहै ~/.zprofileया ~/.zshrcसही नहीं है, यह होना चाहिए ~/.zshenv

यदि आपको कुछ करने की आवश्यकता है PATH, तो आगे बनाएँ / संपादित करें ~/.zprofile:

# apply the prepend to PATH
[[ -r ~/.zshenv ]] && source ~/.zshenv
# remove duplicate in PATH
typeset -U PATH

संदर्भ: http://zsh.sourceforge.net/Intro/intro_3.html


"यदि आपको PATH को प्रस्तुत करने की आवश्यकता है" तो आपका क्या मतलब है और ऐसा क्यों नहीं किया जा सकता है .zshenv?
nohillside

@nohillside: मेरे बुरे व्याकरण के लिए क्षमा करें, लेकिन अच्छा सवाल है। आप के लिए कुछ पहले जोड़ें करने का प्रयास करें PATHमें ~/.zshenvसे PATH="to/your/path:$PATH", में लाइनों के बिना ~/.zprofile, यह काम नहीं करेगा। कुछ कॉल path_helperउन लोगों /usr/local/bin/:/usr/bin:...के सामने ले जाएगा PATH
बारिश हुई

संक्षेप में यह लोडिंग ऑर्डर की बात है। path_helperके बाद ~/.zshenvलेकिन पहले क्रियान्वित किया जाएगा ~/.zproflie। और अपने अध्ययन से आज मैं संशोधित करने के बजाय सिमलिंक का उपयोग करने की सलाह दूंगा PATH, जो बहुत सरल है।
बारिश हुई

0

कोड की इन पंक्तियों को inbashrc में डालें:

function pathadd {              # Add new element to PATH
  if ! echo $PATH | egrep -q "(:|^)$1(:|$)"
  then if [ "$2" = "after" ]
       then PATH="$PATH:$1"
       else PATH="$1:$PATH"
       fi
  fi
}

फिर एक कमांड टाइप करें: pathadd /opt/local/binया pathadd /opt/local/bin after


फ़िंक के इनिट में दो कार्य नोट करें- github.com/fink/base-files/blob/master/init.sh.in
fd0
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.