Eliminar saída padrão e erro

1

Eu redirecionei minha saída usando / dev / null no script bash, mas ainda está gerando um erro. Código está seguindo

ps -p $proc | fgrep $proc> /dev/null
if [ $? -ne '0' ] ; then
......
fi    

abaixo é erro

error: list of process IDs must follow -p

Usage:
 ps [options]

 Try 'ps --help <simple|list|output|threads|misc|all>'
  or 'ps --help <s|l|o|t|m|a>'
 for additional help text.

For more details see ps(1).
Usage: fgrep [OPTION]... PATTERN [FILE]...
Try 'fgrep --help' for more information.

Como posso suprimir esse erro sem afetar a saída $? ?

    
por Aashu 27.05.2015 / 08:09

3 respostas

2

Você pode usar o agrupamento de comandos:

{ ps -p "$proc" | fgrep "$proc";} >/dev/null 2>&1

ou envoltório de tubo em subshell:

(ps -p "$proc" | fgrep "$proc") >/dev/null 2>&1
    
por 27.05.2015 / 08:29
2

&> /dev/null elimina os dois stderr e stdout . Mesma resposta que os outros, apenas alguns caracteres mais curtos.

    
por 27.05.2015 / 09:03
-1

redirecionar o fluxo de erros para null como ps -p $proc 2> /dev/null | fgrep $proc > /dev/null 2>&1

    
por 27.05.2015 / 08:20