Um comando que gera erro padrão e saída

6

Eu quero fazer alguma solução de problemas no meu script bash. Existe um comando curto e simples que gera stdout e stderr para que eu possa usar 2>&1 ? Desculpe se isso parece trivial, mas eu não consigo pensar em um no momento.

    
por Question Overflow 13.08.2014 / 04:51

4 respostas

5

Uma abordagem simples seria usar ls para listar arquivos reais e imaginários:

ls . *.blah

Isso pressupõe que são arquivos visíveis no diretório de trabalho e que você não possui arquivos que terminem em .blah 1


1. ... e se você fizer isso, não vamos julgá-lo.

    
por 13.08.2014 / 05:22
6

Basta escrever um subshell que envia para stdout e stderr ...

(echo STDOUT && echo STDERR >&2) 

Para comprovar que funciona:

(echo STDOUT && echo STDERR >&2) > STDOUT.txt 2> STDERR.txt

Isso criará os arquivos STDOUT.txt e STDERR.txt contendo as palavras STDOUT e STDERR , respectivamente.

    
por 13.08.2014 / 11:09
2
ls / /x
df / /x
wc / /etc/passwd
od / /dev/null

Para stdout garantido escrito antes stderr:

(w;/) # Bourne/csh like shells only.
sh -c 'w;/'
'time' w
    
por 13.08.2014 / 09:09
1

Você pode escrever uma função para usar depois:

gen_stdout_stderr() {                                                           
    printf "%s\n" "STDERR" >&2                                                  
    printf "%s\n" "STDOUT"                                                      
}

Então:

$ gen_stdout_stderr 
STDERR
STDOUT
    
por 13.08.2014 / 06:23