foo() any-command
Bourne benzeri herhangi bir kabuk tarafından desteklenen Bourne sözdizimi bash
, ancak yash
son sürümleri posh
(yalnızca bileşik komutları destekleyen). (Bourne kabuğu ve AT&T uygulamaları bir bileşik komut olmadığı sürece ksh
desteklemez ).foo() any-command > redirections
any-command
foo() any-compound-command
(bileşik örnekleri komutları: { cmd; }
, for i do echo "$i"; done
, (cmd)
... en yaygın olarak kullanılan { ...; }
)
Bourne benzeri herhangi bir kabuk ve genel olarak kullanmak istedikleriniz tarafından desteklenen POSIX sözdizimidir.
function foo { ...; }
Bourne sözdiziminden önce gelen Korn kabuğu sözdizimidir. Bunu sadece Korn kabuğunun AT&T uygulaması için yazıyorsanız ve orada aldığı spesifik tedaviye ihtiyaç duyuyorsanız kullanın. Bu sözdizimi POSIX değil, tarafından desteklenen bash
, yash
ve zsh
Korn kabuk uyumluluk için bu kabuklar (ve olsa pdksh
Korn kabuğunun tabanlı varyantları) ona standart sözdizimi herhangi bir farklı tedavi etmiyoruz.
function foo () { ...; }
sözdizimi bir kabuk ve kullanılmamalıdır . Sadece tarafından kazara desteklenecek olur bash
, yash
, zsh
ve pdksh
Korn kabuk tabanlı varyantları. Bu arada, aynı zamanda awk
fonksiyon sözdizimi.
Ezoterik listesine girmeye devam edersek,
function foo() other-compound-command
(gibi function foo() (subshell)
ya da function foo() for i do; ... done
) daha da kötüdür. Bu tarafından desteklenmektedir bash
, yash
ve zsh
fakat, hatta ksh değil pdksh
tabanlı varyantları.
Süre:
function foo() simple command
sadece tarafından desteklenir zsh
.
function baz { echo "baz"; }
. GreyCat'in wiki'sinde Bashism'i görün .