Reindirizza sempre l'errore a / dev / null


22

So di poter reindirizzare i messaggi di errore da un comando /dev/nullall'utilizzo della sintassi seguente:

command arg1 arg2 2>/dev/null

Ma c'è un modo per farlo di default in modo che i messaggi di errore vadano sempre /dev/null, se non diversamente specificato?


1
In breve: sì - reindirizza / dev / stderr a / dev / null. Ma, se non riesci a capirlo da solo, non dovresti provare, poiché è più probabile che tu rompa qualcosa fatalmente che avere successo.
Benubird,

@Benubird stderr! = / Dev / stderr. Il reindirizzamento di quel file non farà nulla. Il file in / dev / è solo per comodità.
Chris Down

@ChrisDown hai ragione, / dev / stderr è solo un link. Tuttavia, molti processi scrivono su quello invece di fd / 2, che potresti anche reindirizzare. Da qui diventa più complicato, motivo per cui ho lasciato un commento anziché una risposta :).
Benubird,

Risposte:


29

Molti programmi inviano output a stderr che in realtà non è indicativo di errori. Ad esempio, in alcuni programmi viene utilizzato per visualizzare informazioni che potrebbero altrimenti influire sull'output del programma (progettato per essere reindirizzato a un altro programma). Tuttavia, puoi farlo:

exec 2>/dev/null

Non consiglierei di farlo al di fuori di una sceneggiatura.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.