Não é possível redirecionar o erro padrão do openmpi no csh para o arquivo

0

Eu li esta pergunta e responda - Redirecionar stderr para stdout mas nada parece funcionar para capturar o erro de um software chamado OpenMPI no Ubuntu 16.04 LTS.

Eu tenho os comandos OpenMPI em um script de shell digitando

mpirun -np 4 command 

e, em seguida, em um prompt de comando, eu digito

job_script >& logs 

Isso captura os erros e a saída do software do aplicativo, mas não captura os erros do OpenMPI que o script gera. Como faço para capturar os erros do OpenMPI, bem como agora, pois eles estão indo para o erro padrão?

    
por gansub 13.06.2017 / 12:45

2 respostas

1

O operador >& redireciona o erro padrão e a saída padrão para o mesmo destino. Redirecionar erro padrão é uma das coisas mais famosas que o csh não pode fazer , então se você queria fazer isso, a resposta seria que é impossível. (Claro, é possível - mas apenas passando por outro programa como sh .) No entanto, você deseja redirecionar stdout e stderr, e >& faz exatamente isso.

Se job_script >& logs emite alguma saída, o aplicativo deve estar gravando diretamente no terminal. Você não pode capturar isso com o redirecionamento. Você pode usar o comando script para registrar tudo, incluindo a saída do terminal, em um arquivo.

script -c 'job_script' logs >/dev/null

Dito isto, é 2017. Já se passaram 15 anos desde que (t) o csh tinha alguma vantagem sobre o bash para uso interativo, cerca de 25 anos sobre o zsh, e o csh nunca foi bom em scripts. É mais do que tempo para se aposentar.

    
por 15.06.2017 / 00:45
0

Da sua linha de comando cshell , faça isso para separar os fluxos stdout / stderr:

( job_script > stdout.log ) >& stderr.log
    
por 27.07.2017 / 10:04