मैं बैश स्क्रिप्टिंग सीख रहा हूं और यह मेरे / usr / शेयर / बैश-समापन, लाइन 305 पर पाया गया:
local cword words=()
यह क्या करता है? ऑनलाइन सभी ट्यूटोरियल सिर्फ प्रारूप में हैं
local var=value
मैं बैश स्क्रिप्टिंग सीख रहा हूं और यह मेरे / usr / शेयर / बैश-समापन, लाइन 305 पर पाया गया:
local cword words=()
यह क्या करता है? ऑनलाइन सभी ट्यूटोरियल सिर्फ प्रारूप में हैं
local var=value
जवाबों:
हालांकि मुझे जोर्डनम द्वारा दिए गए उत्तर पसंद हैं, मुझे लगता है कि कम अनुभवी Linux
उपयोगकर्ताओं को दिखाना उतना ही महत्वपूर्ण है कि इस तरह के सवालों का सामना कैसे करें।
सुझाया गया तरीका Google खोज परिणाम पृष्ठ पर दिखाई देने वाले यादृच्छिक पृष्ठों के उत्तर खोजने की तुलना में तेज़ और अधिक बहुमुखी है।
सबसे पहले, सभी आज्ञाएँ जो Bash
बिना किसी स्पष्ट पथ को टाइप किए बिना चलाई जा सकती हैं जैसे कि ./command
दो श्रेणियों में विभाजित की जा सकती हैं: Bash shell builtins
और external commands
। Bash shell builtins
के साथ स्थापित आओ Bash
और इसका हिस्सा हैं, जबकि external commands
का हिस्सा नहीं हैं Bash
। यह महत्वपूर्ण है क्योंकि Bash shell builtins
अंदर दस्तावेज हैं man bash
और उनके प्रलेखन को भी लागू किया जा सकता हैhelp
कमांड के जबकि external commands
आमतौर पर अपने स्वयं के दस्तावेज होते हैं manpages
या -h, --help
ध्वज के कुछ राजा लेते हैं । यह जाँचने के लिए कि क्या कोई कमांड है Bash shell builtin
या external command
:
$ type local
local is a shell builtin
यह प्रदर्शित करेगा how command would be interpreted if used as a command name
(से help type
) । यहाँ हम देख सकते हैं कि local
ए shell builtin
। आइए एक और उदाहरण देखें:
$ type vim
vim is /usr/bin/vim
यहाँ हम देख सकते हैं कि vim
यह shell builtin
एक बाहरी आदेश नहीं है/usr/bin/vim
। लेकिन, कभी कभी एक ही आदेश एक के रूप में दोनों स्थापित किया जा सकता external command
है और एक होना shell builtin
एक ही समय में। उदाहरण के लिए, सभी संभावनाओं को सूचीबद्ध -a
करने के type
लिए जोड़ें :
$ type -a echo
echo is a shell builtin
echo is /usr/bin/echo
echo is /bin/echo
यहाँ हम देख सकते हैं कि echo
दोनों एक shell builtin
और एक है external command
। हालाँकि, अगर आपने सिर्फ टाइप किया echo
और दबायाReturn एक shell builtin
यह इस सूची में पहले प्रकट होता है क्योंकि कहा जाता। ध्यान दें कि इन सभी संस्करणों echo
को समान होने की आवश्यकता नहीं है। उदाहरण के लिए, मेरे सिस्टम /usr/bin/echo
पर --help
झंडा builtin
नहीं है, जबकि ऐसा नहीं है।
ठीक है, अब जब हम जानते हैं कि local
शेल शेल है तो आइए जानें कि यह कैसे काम करता है:
$ help local
local: local [option] name[=value] ...
Define local variables.
Create a local variable called NAME, and give it VALUE. OPTION can
be any option accepted by `declare'.
Local variables can only be used within a function; they are visible
only to the function where they are defined and its children.
Exit Status:
Returns success unless an invalid option is supplied, an error occurs,
or the shell is not executing a function.
पहली पंक्ति पर ध्यान दें name[=value]
:। के बीच सब कुछ [
और ]
है वैकल्पिक । यह एक सामान्य सम्मेलन है जिसका उपयोग कई manpages
और प्रलेखन के रूप में किया जाता है*nix
दुनिया है। कहा जा रहा है, आपके द्वारा अपने प्रश्न के बारे में पूछा गया आदेश पूरी तरह से कानूनी है। बदले में, ...
चरित्र का मतलब है कि पिछले तर्क को दोहराया जा सकता है। आप इस सम्मेलन के बारे में कुछ संस्करणों में भी पढ़ सकते हैं man man
:
The following conventions apply to the SYNOPSIS section and can be used
as a guide in other sections.
bold text type exactly as shown.
italic text replace with appropriate argument.
[-abc] any or all arguments within [ ] are optional.
-a|-b options delimited by | cannot be used together.
argument ... argument is repeatable.
[expression] ... entire expression within [ ] is repeatable.
इसलिए, दिन के अंत में, मुझे आशा है कि अब आपको यह समझने में आसानी होगी कि अलग-अलग कमांड कैसे हैं Linux
काम हैं।
local
करते हैं?
man bash
। एक बार वहां आने के बाद, /Arrays$
सरणियों पर अनुभाग पर जाने के लिए टाइप करें। (इसके $
बाद की अनुगामी Arrays
को अनुभाग के इन-टेक्स्ट संदर्भों के माध्यम से साइकिल चलाने से रोकना है।) वहां से आप f
एक पृष्ठ को आगे बढ़ाने या b
पीछे जाने के लिए टाइप कर सकते हैं। q
काम पूरा होने पर मैन पेज से बाहर निकलने के लिए टाइप करें।
help
यदि आप अधिक देखने के लिए उत्सुक हैं , तो भी, बिना आर्ग के साथ चलने से सभी बैश बिल्ड की सूची होगी।
local
बस एक चर को केवल वर्तमान में परिभाषित फ़ंक्शन में गुंजाइश होने की घोषणा करता है, ताकि मुख्य निष्पादन वातावरण मूल्य को "देख" न सके। आप local
किसी फ़ंक्शन के बाहर उपयोग नहीं कर सकते । उदाहरण
func() {
nonlocal="Non local variable"
local onlyhere="Local variable"
}
func
echo $nonlocal
echo $onlyhere
आउटपुट: गैर स्थानीय चर
तो $onlyhere
फ़ंक्शन के दायरे के बाहर दिखाई नहीं दे रहा था।
var=()
, लेकिन मुझे लगता है कि जो आप खोज रहे हैं उसका नाम जाने बिना भी यह पता लगाना थोड़ा अधिक है। । ;)