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
및 zsh
Korn 쉘과의 호환성을 위해 그 쉘 (그리고 비록 pdksh
Korn 쉘의 기반 변종은) 그것을 표준 구문과 어떤 다른 치료를하지 않습니다.
function foo () { ...; }
쉘 이 없는 구문이므로 사용하면 안됩니다 . 단지에서 사고에 의해 지원 될 일이 bash
, yash
, zsh
및 pdksh
Korn 쉘의 기반 변형. 또한 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 을 참조하십시오 .