foo() any-command
बॉर्न सिंटैक्स किसी बॉर्न जैसे शेल द्वारा समर्थित है bash
, लेकिन ( yash
और posh
केवल कंपाउंड कमांड का समर्थन करता है) के हाल के संस्करण । (बॉर्न शेल और एटी एंड टी कार्यान्वयन तब तक ksh
समर्थन नहीं करते हैं foo() any-command > redirections
जब तक any-command
कि एक यौगिक कमांड नहीं है)।
foo() any-compound-command
(परिसर के उदाहरण आदेश: { cmd; }
, for i do echo "$i"; done
, (cmd)
... सबसे अधिक इस्तेमाल किया जा रहा है { ...; }
)
POSIX सिंटैक्स किसी बॉर्न जैसे शेल द्वारा समर्थित है और एक जिसे आप आमतौर पर उपयोग करना चाहते हैं।
function foo { ...; }
कोर्न शेल सिंटैक्स है, जो बॉर्न सिंटैक्स से पहले है। केवल इस एक का उपयोग करें यदि केंट शेल के एटी एंड टी कार्यान्वयन के लिए विशेष रूप से लिख रहे हैं और इसे प्राप्त होने वाले विशिष्ट उपचार की आवश्यकता है। यह सिंटैक्स POSIX नहीं है, लेकिन इसके द्वारा समर्थित है bash
, yash
और zsh
कोर्न शेल के साथ संगतता के लिए हालांकि उन गोले (और pdksh
कोर्न शेल के -बेड वेरिएंट) इसे मानक सिंटैक्स से अलग नहीं मानते हैं।
function foo () { ...; }
की वाक्य रचना है कोई खोल और नहीं किया जाना चाहिए । यह केवल द्वारा दुर्घटना द्वारा समर्थित होना करने के लिए होता bash
, yash
, zsh
और pdksh
कॉर्न खोल के आधार वेरिएंट। संयोग से, यह awk
फ़ंक्शन सिंटैक्स भी है ।
यदि हम गूढ़ सूची में नीचे जा रहे हैं,
function foo() other-compound-command
(like function foo() (subshell)
or function foo() for i do; ... done
) और भी खराब है। यह द्वारा समर्थित है bash
, yash
और zsh
, लेकिन नहीं ksh, यहां तक कि pdksh
आधारित वेरिएंट।
जबकि:
function foo() simple command
द्वारा समर्थित है zsh
।
function baz { echo "baz"; }
:। देखें Bashism GreyCat का विकी में।