आप शायद उस कांटे वाले बम के बारे में जानते हैं :
:(){ :|:&};: #WARNING: harmful code
मुझे आश्चर्य है कि यह आवश्यक क्यों है, इसके लिए पार्स करने के लिए, घुंघराले ब्रेस खोलने के बाद एक स्थान शामिल करना है।
आप शायद उस कांटे वाले बम के बारे में जानते हैं :
:(){ :|:&};: #WARNING: harmful code
मुझे आश्चर्य है कि यह आवश्यक क्यों है, इसके लिए पार्स करने के लिए, घुंघराले ब्रेस खोलने के बाद एक स्थान शामिल करना है।
जवाबों:
{}
{ list; }
घुंघराले ब्रेसिज़ के बीच आदेशों की एक सूची रखने से सूची को वर्तमान शेल संदर्भ में निष्पादित किया जा सकता है। कोई उपधारा नहीं बनाई गई है। सूची के बाद अर्धविराम (या नई पंक्ति) की आवश्यकता है।
एक उपधारा के निर्माण के अलावा, ऐतिहासिक कारणों से इन दोनों निर्माणों के बीच एक सूक्ष्म अंतर है। ब्रेस आरक्षित शब्द हैं, इसलिए उन्हें रिक्त या अन्य शेल मेटाचैकर द्वारा सूची से अलग किया जाना चाहिए। कोष्ठक संचालक हैं, और उन्हें शेल द्वारा अलग-अलग टोकन के रूप में मान्यता प्राप्त है, भले ही वे व्हाट्सएप द्वारा सूची से अलग न हों।
// स्रोत
मुझे लगता है कि अगर यहां भ्रामक उत्तर दिया गया तो @rush सही दे सकता है। कांटा-बम " " नामक एक फ़ंक्शन को परिभाषित करता है :
। कर्ली ब्रेसिज़ में कोड तब तक निष्पादित नहीं किया जाता है जब तक कि फ़ंक्शन अंतिम " :
" कहलाता है । तो कमांड समूह के रूप में घुंघराले ब्रेसिज़ और फ़ंक्शन बॉडी के रूप में घुंघराले ब्रेसिज़ समान रूप से समान होते हैं, लेकिन अलग-अलग शब्दार्थ होते हैं। @Rush का हवाला देते हुए
उसी दस्तावेज़ से :
ध्यान दें कि ऐतिहासिक कारणों के लिए, सबसे आम उपयोग में कर्ली ब्रेसिज़ जो फ़ंक्शन के शरीर को घेरते हैं, को शरीर से रिक्त स्थान या नईलाइन्स द्वारा अलग किया जाना चाहिए। ऐसा इसलिए है क्योंकि ब्रेसिज़ आरक्षित शब्द हैं और उन्हें केवल तभी पहचाना जाता है जब उन्हें व्हाट्सएप या किसी अन्य शेल मेटाचैकर द्वारा कमांड सूची से अलग किया जाता है। इसके अलावा, ब्रेसिज़ का उपयोग करते समय, सूची को अर्धविराम, 'और' या एक नई पंक्ति द्वारा समाप्त किया जाना चाहिए।
function_body
एक compound_command
(प्लस एक वैकल्पिक redirect_list
) है। अंतरिक्ष की जरूरत है क्योंकि {
एक आरक्षित शब्द है, विशेष चरित्र नहीं।
brace_group
एक समारोह का हिस्सा है और जब नहीं अलग व्यवहार करते हैं। मैं बाद के मामले का वर्णन करने के लिए कमांड ग्रुपिंग का उपयोग कर रहा था और यह वह है जिसे रश के लिंक में वर्णित किया गया था।
{
कोई ऑपरेटर नहीं है, बल्कि एक आरक्षित शब्द है, और शब्दों को विशिष्ट मानने के लिए अन्य शब्दों से अलग करने की आवश्यकता है।