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 का विकी में।