बैश का उपयोग कर चर में वर्तमान निर्देशिका को बचाएं?


111

मैं जो करने की कोशिश कर रहा हूं वह वर्तमान कार्यशील निर्देशिका को ढूंढता है और इसे एक चर में सहेजता है, ताकि मैं चला सकूं export PATH=$PATH:currentdir+somethingelse। मुझे पूरी तरह से यकीन नहीं है कि उनके पास एक चर है जिसमें डिफ़ॉल्ट रूप से cwd है।

मैं बैश का उपयोग करके चर में वर्तमान निर्देशिका कैसे बचा सकता हूं?


इसलिए इसे एक चर में सहेजने के लिए मैं mydir = करूंगा। ?
स्टुपिड.पाट.कैट

1
yup ने mydir = के साथ परीक्षण किया। तब ls $ mydir- लेकिन यह सापेक्ष है इसलिए यह जहाँ भी आप इसे चलाते हैं उससे pwd होगा
mcalex

धन्यवाद! चलो आशा है कि यह मेरे लिए काम करता है
Stupid.Fat.Cat

ओह, मेरे पास कुछ रिक्त स्थान थे। tt $ {PWD} को काम करना चाहिए था। haha। ... वूप्स
स्टूपिड.फैट.कैट

जवाबों:


188

यह वर्तमान कार्यशील निर्देशिका के निरपेक्ष पथ को चर में बचाता है cwd:

cwd=$(pwd)

आपके मामले में आप कर सकते हैं:

export PATH=$PATH:$(pwd)+somethingelse

1
किसी कारण से अगर मैं किसी अन्य डीआईआर में बदल जाता हूं तो यह cwdचर को भी अपडेट करता है। जैसे अगर यह pwdहर बार फ़ंक्शन को बुला रहा है ... dpaste.de/Kn7F मैं इससे कैसे बच सकता हूं?
तूतुका

1
$CWDआपके शेल में एक विशेष (आरक्षित) पर्यावरण चर हो सकता है। इसके बजाय एक अलग नाम का प्रयास करें, जैसे$CWD_MY_VAR
sampson-chen

बैकटिक्स का उपयोग वही करता है।
तूतुका

1
सिर्फ उपयोग क्यों नहीं "$PWD"?
लेटबाकून

28

मेरे पास मेरे .bash_profile में निम्नलिखित हैं:

function mark {
    export $1=`pwd`;
}

इसलिए कभी भी मैं एक निर्देशिका को याद रखना चाहता हूं, मैं सिर्फ टाइप कर सकता हूं, उदाहरण के लिए

फिर जब मैं वापस उस स्थान पर जाना चाहता हूं, तो मैं वहां $ cd टाइप करता हूं


अच्छी तरह से काम करता है लेकिन रिक्त स्थान वाले रास्तों के लिए, उदाहरण के लिए "Google ड्राइव" आपको cd "$foo"पूरा पथ पढ़ने के लिए करना होगा
mercergeoinfo

3
पथ परिवर्तन में रिक्त स्थान के साथ समस्या को हल export $1=`pwd` करने के लिए export $1="`pwd`" और फिर ऐसे रास्तों को कॉल करने के cd "$foo"बजाय बस का उपयोग करेंcd $foo
mercergeoinfo

mercergeoinfo: सख्ती से बोलना, उद्धरण की export $1="`pwd`"आवश्यकता नहीं है, क्योंकि शब्द विभाजन एक असाइनमेंट के दाहिने हाथ की तरफ नहीं होता है, हालांकि विस्तार के उद्धरण एक आदत के रूप में उपयोग करने के लिए अच्छा है।
लैरी

2
cdable_varsबस टाइप करने के लिए भी देखेंcd there
जॉन कमिंग्स

4

आपके असाइनमेंट में एक अतिरिक्त है $:

export PATH=$PATH:${PWD}:/foo/bar

3

एक रिश्तेदार जवाब के लिए, का उपयोग करें.

के साथ परीक्षण:

$ myDir=.
$ ls $myDir
$ cd /
$ ls $myDir

पहला lsआपको वर्तमान निर्देशिका में सब कुछ दिखाएगा, दूसरा आपको रूट निर्देशिका ( /) में सब कुछ दिखाएगा ।


1

वर्तमान कार्यशील निर्देशिका चर यानी पूर्ण पथ / घर / देव / अन्य

dir=$PWD

पूरा रास्ता प्रिंट करें

echo $dir


0

आप शेल-बिल्ड चर का उपयोग कर सकते हैं PWD, जैसे:

export PATH=$PATH:$PWD+somethingelse
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.