chat à stderr pendant la lecture jusqu'à la fin du marqueur de file

Laissant de côté la question de savoir si la sortie d'utilisation devrait aller à stderr ou non, si vous deviez redirect la sortie de la command cat ci-dessous vers stderr, comment le feriez-vous?

function usage { cat << " EOF_USAGE" usage: FrameworkBuildScript --clean-all --clean-sdk-only --build-in-externals --debug-only --release-only --resources-only --clean-all Clean all libraries before building --clean-sdk-only Clean SDK library before building --build-in-externals Include all libraries in the SDK library --debug-only Build only the debug SDK framework --release-only Build only the release SDK framework --resources-only Build only the SDK resource bundles Example: $0 --clean --build-in-externals EOF_USAGE } 

 cat << EOF >&2 ... EOF 

Ou:

 cat >&2 << EOF ... EOF 

ou:

 >&2 cat << EOF ... EOF 

Ou:

 usage() { cat << EOF ... EOF } >&2 

function usage { est la syntaxe ksh . Cela n'a de sens que dans les implémentations AT & T de ksh où les fonctions définies de cette façon se comportent différemment. Dans d'autres shells, cette syntaxe non standard, où supscope, se comporte de la même manière que la syntaxe de Bourne / POSIX usage() { .