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.
Imprimir a partir do iPhone / iPad para qualquer impressora
Tem uma impressora e precisa imprimir algo do seu iPhone ou iPad? Se a sua impressora suportar o AirPrint, a coisa não poderia ser mais fácil. A impressora só aparecerá na lista e você está pronto para ir.Se você não tem uma impressora habilitada para AirPrint, no entanto, você está praticamente sem sorte. Felizmen
Como Gerenciar Playlists Colaborativas no Spotify
Tem uma grande festa chegando, mas não quer deixar os deveres de DJ para apenas uma pessoa? Graças ao recurso de lista de reprodução colaborativa do Spotify, você pode ter certeza de que, independentemente do gosto musical, o mundo todo vai gostar: Para iniciar uma lista de reprodução colaborativa, comece abrindo seu cliente Spotify em um PC.