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这种方式定义的函数表现不同时才有意义。在其他 shell 中,受支持的非标准语法的行为与 Bourne/POSIXusage() {语法相同。

相关内容