Se você é uma pessoa ocupada, então a última coisa que você precisa é ser incomodado com uma enorme quantidade de notificações "inúteis", então como você acalma as coisas? A postagem de perguntas e respostas do SuperUser de hoje tem ótimas respostas para ajudar o leitor a diminuir a quantidade de resultados.
A sessão de Perguntas e Respostas de hoje nos é oferecida por SuperUser - uma subdivisão do Stack Exchange, um agrupamento de sites de perguntas e respostas.
Superuser Leitor Xster quer saber como executar um comando em segundo plano sem saída a menos que haja um erro:
Como você suprime a saída de um comando, mas mostra-o se os códigos de saída do comando um erro?
Como você obtém um comando para ser executado em segundo plano sem saída, a menos que haja um erro?
Bob e Maximillian Laumeister têm a resposta para nós. Primeiro, Bob:
Infelizmente, a suposição de que stderr é usado apenas para saída de erro nem sempre está correta. Em vez disso, stderr é usado com freqüência para toda e qualquer saída e diagnóstico interativos (ou seja, saída destinada ao usuário ler em um prompt interativo). (1) wget e dd são exemplos bem conhecidos.
Alguns comandos fornecerão um sinalizador (isto é, -quiet ou -silent ) para suprimir a saída sem erros. Leia suas páginas man para ver se existe uma.
Outra convenção que mantém com mais freqüência é o código de saída , um programa retorna um código de saída quando ele sai. Tipicamente (2) , um código de saída 0 indica sucesso, e qualquer outro código de saída indica um erro.
Com bash , você pode obter o código de saída do último comando da variável $? . Em fish , use a variável $ status . Você pode canalizar stderr para um arquivo temporário e imprimi-lo somente se ocorrer um erro. Por exemplo ( fish ):
Você também pode usar alguns atalhos se não estiver encadeando comandos:
Ou:
Você também pode canalizar stdout para o mesmo buffer usando 2> & 1> / tmp / outputbuffer .
( Nota: Eu não sei peixe , então estou adaptando o conceito para O que posso encontrar em sua documentação. A sintaxe pode estar um pouco errada. Além disso, você pode usar mktemp para gerar um arquivo temporário exclusivo. Execute-o e registre o nome do arquivo em uma variável.)
você precisa executar a coisa toda no plano de fundo de um shell que você também está usando interativamente ao mesmo tempo, então é melhor escrever um script para manipular a ocultação de saída e executar esse script em segundo plano com as técnicas padrão ( peixe ). Heck, você pode colocar algo como a seguinte função em ~ / .config / fish / config.fish :
Chamada com run-silent somecommand & (onde o trailing & faz com que seja executado em segundo plano)
Observe que isso engolirá o código de saída original e despejará stdout e stderr no caso de um falha. Você pode personalizá-lo conforme necessário
(1) Não há garantia de que a saída de erro não apareça na stdout , alguns programas descarregarão toda a saída lá!
(2) Infelizmente, isso nem sempre é o caso. O código de saída é completamente controlado pelo programa e alguns indicarão algumas condições de sucesso com saídas diferentes de zero. Mais uma vez, verifique o manual
Seguido pela resposta de Maximillian Laumeister:
Utilitários Unix enviam mensagens gerais para stdout e mensagens de erro para stderr , portanto, se nós apenas Se você deseja ver mensagens de erro, será suficiente suprimir stdout para que somente stderr obtenha a saída para o console.
A maneira de fazer isso (em ambos bash e fish ) é anexar > / dev / null ao comando. Isso canaliza stdout para o nada, mas stderr (com suas mensagens de erro) ainda chega ao console.
Assim, por exemplo:
O comando echo 1 > / dev / null não imprime nada, porque o normal A saída stdout é suprimida e nada foi gravado em stderr .
O comando man doesnotexist> / dev / null imprime uma mensagem de erro porque man escreve sua mensagem de erro para stderr .
Tem algo a acrescentar à explicação? Som desligado nos comentários. Quer ler mais respostas de outros usuários do Stack Exchange com experiência em tecnologia? Confira o tópico de discussão completo aqui.
Como restringir o acesso ao seu Xbox One com uma senha
Se você tem filhos em casa e quer mantê-los fora de certos programas de streaming ou colegas de quarto que têm o mau hábito de sobrescrever seu progresso no Fallout 4, criar uma chave de acesso para o seu perfil do Xbox One é essencial para proteger seus jogos baixados, perfis de aplicativos de vídeo e salvamentos de jogos.
Como fazer com que a Siri anuncie quem está chamando no iOS 10
Digamos que você esteja fora para uma corrida. Você está na zona, você tem seus fones de ouvido, você está ouvindo suas músicas, seu iPhone está amarrado ao seu braço para mantê-lo em segurança, e então alguém te chama. Quem é, e mais importante, você deve mesmo responder? RELACIONADO: 26 coisas realmente úteis que você pode fazer com Siri O problema para qualquer um que já esteve em uma situação como essa é óbvio.