/ / मैं अपने zshrc में स्थानीय / फ़ंक्शंस स्थानीय कैसे रखूं? - zsh, zshrc

मैं अपने zshrc में स्थानीय / फ़ंक्शंस स्थानीय कैसे रखूं? - zsh, zshrc

कोई भी चर जो मैं अपने में घोषित करता हूं zshrc एक पर्यावरण चर के रूप में खोल में उपलब्ध है। मैं यह नहीं करना चाहता हूं।

मैंने एक फ़ंक्शन में चर डालने और उन्हें स्थानीय के रूप में सेट करने का प्रयास किया, लेकिन फिर फ़ंक्शन के बाहर उपलब्ध है zshrc.

मैं इसे कैसे बना सकता हूं मेरे zshrc में क्या होता है मेरे zshrc में रहता है?

उत्तर:

उत्तर № 1 के लिए 16

वे उपलब्ध हैं, लेकिन वे निर्यात नहीं किए जाते हैं इसलिए कमांड लाइन से लॉन्च होने वाली स्क्रिप्ट इन चरों को नहीं प्राप्त करती हैं। अगर आपका .zshrc की तरह लगता है

function zshrc()
{
local VAR=1
# Do stuff
}
zshrc

और फिर आप लॉन्च नहीं करना चाहते हैं zshrc फिर से काम करें आप बस कर सकते हैं

unfunction zshrc

बाद में।


जवाब के लिए 28 № 2

यदि आप "zsh के हाल के संस्करण का उपयोग कर रहे हैं तो आप एक अनाम फ़ंक्शन का उपयोग कर सकते हैं:

function () {
local xyz=abc
# whatever
}

फ़ंक्शन स्वचालित रूप से निष्पादित हो जाएगा और फिर फेंक दिया जाएगा, यह केवल स्कोपिंग उद्देश्यों के लिए मौजूद है।

यह काम करता है कोई सोर्स फाइल, न केवल zshrc।


जवाब के लिए 5 № 3

यदि आप शब्द को शामिल नहीं करते हैं local एक चर के लिए यह तब तक रहेगा जब तक कि आप निम्न में से कोई एक कार्य न करें:

  1. एक नई टर्मिनल विंडो खोलें।
  2. रन exec zsh या exec bash आपके खोल के आधार पर। यह सिर्फ आपके स्थानीय चर को साफ़ करता है जिन्हें शब्द के साथ असाइन नहीं किया गया था local.

इससे बचें

method_name(){
a=11
echo $a
}

सही उदाहरण

method_name(){
local a=11
echo $a
}

यह चर फ़ंक्शन नाम पर स्कॉप्ड किया गया है method_name और केवल फ़ंक्शन के अंदर उपलब्ध है जब (और बाद में नहीं) कहा जाता है।

यदि आप उस स्थानीय चर के लिए सीधे पहुंच चाहते हैं तो आप इसे इस तरह से सेट कर सकते हैं

local z=11

और इसे इस तरह से बुलाओ

echo $z

आपके खोल और जरूरतों के आधार पर, आप इसका उपयोग कर सकते हैं .bash_profile या .bashrc या .zshrc आदि कार्यों और उपनामों को स्टोर करने के लिए।

पर्यावरण चर और उनके संबंधित गोले पर अधिक के लिए इस संदर्भ को देखें

शैल विस्तार का उपयोग करके कमांड लाइन पर पर्यावरण चर सेट करने के तरीके को समझने के लिए यह भी पढ़ें

आप पर्यावरण चर के साथ जल्दी से देख सकते हैं env या printenv

सम्मेलन UPPERCASE का उपयोग करना है

अस्थायी रूप से एक पर्यावरण चर सेट करने के लिए (जब तक आप टर्मिनल बंद नहीं करते हैं)

export A=11 या export B="11 is part of this string"

मान लीजिए कि आपने एक नई टर्मिनल विंडो खोली है याsourced .zshrc या .bashrc या जो भी आप उपयोग कर रहे हैं अब आप इस परिवेश चर का उपयोग कर सकते हैं जब तक कि आप अपना टर्मिनल सत्र बंद न करें। नोट: सेटिंग के दौरान $ का उपयोग न करें, लेकिन चर का संदर्भ देते समय $ का उपयोग करें।

उदाहरण

echo "A is equal to: $A and that is pretty nice"

echo "$A"

फ़ाइल कैसे स्रोत करें

source ~/path/to/file/filename

उदाहरण

source ~/.bash_profile

एक पर्यावरण चर सेट करने के लिए (जब तक आप इसे हटा नहीं देते या इसे फिर से सेट नहीं करते)

उपरोक्त कोड का प्रयोग करें, लेकिन इसे अपने ~ / .bash_profile या ~ / .zshrc या अन्य संबंधित फ़ाइल में रखें। फ़ाइल को सहेजें और इसे स्रोत करें।

उदाहरण

export B="11 is part of this string"

अब आप इसे देख सकते हैं

env

उस पर्यावरण चर को हटाने के लिए, इसे फ़ाइल से हटा दें और फिर फ़ाइल को स्रोत करें।

अस्थायी रूप से एक पर्यावरण चर को हटाने के लिए, अनसेट का उपयोग करें

उदाहरण

unset B

ध्यान दें कि नहीं है $ परेशान करते समय।

कमांड लाइन से पर्यावरण चर सेट करने के लिए

export BLABLA="environment variable set from the command line, saved in file for later use"

उस फ़ाइल को चेक करें जिसे आप इसे भेज रहे हैं, यह एक नई लाइन पर शुरू नहीं हो सकता है, हो सकता है कि यह आपकी आखिरी पंक्ति से जुड़ा हुआ हो जो कुछ अन्य कार्य, उपनाम या अन्य था।

यह एक पूरी तरह से व्यापक जवाब नहीं है, लेकिन यह सही दिशा में एक महान कदम है। यह दिखाता है कि एक टर्मिनल खोल में कैसे गुंजाइश सेट, इस्तेमाल और हटाया जा सकता है।