Questão Remover a saída do add-apt-repository


Eu estou tentando escrever um script de shell que irá configurar automaticamente uma pilha LAMP para mim. Uma das linhas que tenho no script é:

add-apt-repository -y ppa:ondrej/php5-oldstable >> /tmp/output.txt

Mas, por mais que tente, sempre produz o seguinte conteúdo:

gpg: keyring `/tmp/tmpf0k2tr/secring.gpg' created
etc........

Eu gostaria que houvesse não saída para ser exibido na tela quando eu executar este comando para adicionar este ppa ao meu repositório.


4
2017-09-04 22:27


origem




Respostas:


Use o redirecionamento de saída para /dev/null e incluir stderr saída.

add-apt-repository -y ppa:ondrej/php5-oldstable > /dev/null 2>&1
  • o 2>&1 dirá ao Bash para redirecionar stderr para stdout.
  • o command > file estrofe redirecionará stdout para um arquivo, neste caso /dev/null.
  • /dev/null é o buraco negro do Linux - você não poderá recuperar nada de lá.

Resultado: execução silenciosa total do seu comando.

Na sua pergunta atualizada, você parece registrar todas as saídas em um arquivo. Nesse caso, você pode apenas acrescentar o 2>&1 para sua linha atual:

add-apt-repository -y ppa:ondrej/php5-oldstable >> /tmp/output.txt 2>&1

Isso é porque você estava olhando para o stderr saída sendo impressa no terminal, que você precisa redirecionar para o log também (caso contrário, você vai perder todos os erros!).


4
2017-09-04 22:34



@Braiam Isto é baseado no comando que o OP forneceu em sua pergunta. Eu suponho que funciona para ele e seu script está sendo executado como root Aqui. A questão é sobre a supressão da saída, não sobre um não funciona comando. - gertvdijk
"stderr para stdout" ah! Esse foi o truque. Eu pensei que toda a saída para o console fosse a mesma. Obrigado por destacar que nem todas as saídas são realmente as mesmas. - John Crawford
@gertvdijk lembrar que as pessoas tendem a copiar e colar sem saber como, o que, quando, onde, etc;). - Braiam