foo() any-command
어떤 본쉘 같은 있지만 지원 보른 구문 bash, yash그리고 최신 버전 posh(전용 복합 명령을 지원한다). (보른 외판과의 AT & T 구현을 ksh지원하지 foo() any-command > redirections않는 any-command화합물 명령 비록이다).
foo() any-compound-command
(화합물의 예는 명령 : { cmd; }, for i do echo "$i"; done, (cmd)... 가장 일반적으로 사용되는 { ...; })
Bourne과 같은 쉘과 일반적으로 사용하려는 쉘에서 지원하는 POSIX 구문입니다.
function foo { ...; }
Bourn 구문보다 오래된 Korn 쉘 구문입니다. Korn 쉘의 AT & T 구현을 위해 특별히 작성하고 여기에서받는 특정 처리가 필요한 경우에만이 기능을 사용하십시오. 그 구문은 POSIX 아니라, 지원하는 bash, yash및 zshKorn 쉘과의 호환성을 위해 그 쉘 (그리고 비록 pdkshKorn 쉘의 기반 변종은) 그것을 표준 구문과 어떤 다른 치료를하지 않습니다.
function foo () { ...; }
쉘 이 없는 구문이므로 사용하면 안됩니다 . 단지에서 사고에 의해 지원 될 일이 bash, yash, zsh및 pdkshKorn 쉘의 기반 변형. 또한 awk함수 구문 이기도 합니다.
난해한 목록을 계속 진행하면
function foo() other-compound-command
( function foo() (subshell)또는 같은 function foo() for i do; ... done) 더 나빠집니다. 이 지원되고 bash, yash그리고 zsh, 그러나, 심지어 KSH하지 pdksh기반의 변종.
동안:
function foo() simple command
에 의해서만 지원됩니다 zsh.
function baz { echo "baz"; }. GreyCat의 Wiki의 Bashism 을 참조하십시오 .