: बैश के लिए कोलोन कमांड


28

एक बैश नौसिखिया के रूप में बोलते हुए मैं कॉपी / पेस्ट + जीथब के माध्यम से अपने .bashrc को अपग्रेड कर रहा हूं और मैं :कमांड में आया हूं जो मुझे और Google दोनों को स्टंप करता है। उदा : ${USER_BASH_COMPLETION_DIR:=~/.bash_completion.d}

इस कथन के बिना मूल रूप से मेरे .bashrc, और इस सामग्री को मेरे टर्मिनल में टाइप करना ( -> प्रासंगिक आउटपुट इंगित करता है):

: ${USER_BASH_COMPLETION_DIR=~/.bash_completion.d}
echo $USER_BASH_COMPLETION_DIR
-> /Users/sh/.bash_completion.d

तथा:

: ${USER_BASH_COMPLETION_DIR=~/.bash_completion.d}
export USER_BASH_COMPLETION_DIR=asdf
echo $USER_BASH_COMPLETION_DIR
-> asdf

परंतु:

: ${USER_BASH_COMPLETION_DIR=~/.bash_completion.d}
export USER_BASH_COMPLETION_DIR=asdf
: ${USER_BASH_COMPLETION_DIR=~/.bash_completion.d}
echo $USER_BASH_COMPLETION_DIR
-> asdf

मुझे नहीं मिला!

1) कैसे बृहदान्त्र कमांड एक चर सेट करता है, लेकिन एक सेट को ओवरराइट नहीं कर सकता है export?

2) :कुछ .bashrc में उपयोग करने के पीछे क्या तर्क है ?

मैक 10.6.8 का उपयोग करना

(संदर्भ से बाहर, मेरे जैसे अन्य लोगों की मदद करने के लिए कीवर्ड बृहदान्त्र में शामिल हैं जिन्होंने उस शब्द को खोजने की कोशिश की)


उत्कृष्ट जवाब देखें stackoverflow.com/questions/10390406/…
सेड्रिक

जवाबों:


45

:एक शेल बिलिन है जो मूल रूप से trueकमांड के बराबर है । यह अक्सर एक ifबयान के बाद एक सेशन के रूप में प्रयोग किया जाता है । आप स्टैक ओवरफ्लो से इस प्रश्न में इसके बारे में अधिक पढ़ सकते हैं ।

${varname=value}मूल रूप से साधन का मान सेट $varnameकरने के लिए valueकरता है, तो $varnameपहले से ही सेट नहीं है, और फिर $ VARNAME का मान। यद्यपि यदि आप इसे कमांड लाइन पर चलाने की कोशिश करते हैं तो यह लौटाए गए मान को चलाने की कोशिश करेगा। लाना :नो-सेशन रोकता है के रूप में सामने मूल्य भागने की कोशिश कर से पार्टी की योजना बनाई।

ध्यान दें कि दो अलग-अलग रूप हैं:

${varname:=value}

यदि varname या तो परेशान या शून्य है, तो varname को वैल्यू पर सेट करता है।

${varname=value}

केवल varname का मान सेट करता है यदि varname वर्तमान में unset है (यानी, यह varname को "" से मान में नहीं बदलेगा)

(एक टिप्पणी में यह स्पष्ट करने के लिए आपका धन्यवाद

कोई और इस पद्धति का संदर्भ दे रहा है

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