cat para stderr enquanto lê o final do marcador de arquivo

3

Deixando de lado a questão de se a saída de uso deve ir para stderr ou não, se você tivesse que redirecionar a saída do comando cat abaixo para stderr, como você faria isso?

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
}
    
por Ben Flynn 31.03.2015 / 17:36

1 resposta

5
cat << EOF >&2
...
EOF

Ou:

cat >&2 << EOF
...
EOF

ou:

>&2 cat << EOF
...
EOF

Ou:

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

function usage { é a sintaxe ksh . Isso só faz sentido nas implementações AT & T de ksh , onde as funções definidas dessa maneira se comportam de maneira diferente. Em outros shells, essa sintaxe não padrão, onde suportado, se comporta da mesma forma que a sintaxe Bourne / POSIX usage() { .

    
por 31.03.2015 / 17:40