Alias para redirecionar a saída padrão e o erro padrão, bem como enviar para o segundo plano [duplicado]

5

Estou tentando criar um alias para redirecionar a saída padrão e o erro padrão de gedit para /dev/null , enquanto envia o comando para segundo plano.

Isso funciona:

$ alias gedit='gedit $1 > /dev/null 2>&1'
$ gedit file.txt &

No entanto, adicionar a instrução de segundo plano & à string alias não funciona porque é imediatamente interpretada:

$ alias gedit='gedit $1 > /dev/null 2>&1 &'
[1]+  Done                    gedit > /dev/null 2>&1

Como devo adicionar essa instrução & background ao comando alias ?

    
por Serge Stroobandt 17.01.2014 / 17:40

1 resposta

7

Eu não acho que você pode fazer isso com um alias , mas você pode com uma função no Bash.

$ gedit() { command gedit "$@" > /dev/null 2>&1 & }

Exemplo

$ gedit file.txt
[1] 24057
$ 

Detalhes

A função faz uso do comando command do Bash. Isso invocará o executável real com um determinado nome, em vez de chamar quaisquer aliases ou funções que já existam. Optei por usar $@ , o que lhe dará todos os argumentos de linha de comando passados, em vez de apenas o primeiro com $1 .

    
por 17.01.2014 / 18:02