ファイルの終わりマーカーを読みながら、catからstderrへ

ファイルの終わりマーカーを読みながら、catからstderrへ

出力を使用するかどうかについての質問はお願いします。しなければならないstderrに行くかどうかにかかわらず、以下のcatコマンドの出力をstderrにリダイレクトする必要がある場合はどうすればよいですか?

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
}

答え1

cat << EOF >&2
...
EOF

または:

cat >&2 << EOF
...
EOF

または:

>&2 cat << EOF
...
EOF

または:

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

function usage {文法ですksh。このように定義された関数がAT&T実装で異なる動作をkshする場合にのみ意味があります。他のシェルでは、サポートされている非標準構文はusage() {Bourne / POSIX構文と同じように動作します。

関連情報