Come posso memorizzare loutput nella variabile bash e sopprimere loutput su stderr e stdout? [duplicate]

Questa domanda ha già una risposta qui :

Commenti

  • La tua modifica mostra una sostituzione del comando che cattura solo il flusso di errore standard del comando ed elimina completamente il flusso di output standard.
  • Per riferimento futuro, " stamperà un errore " non è così utile come qualcosa come " stamperà lerrore Error: you didn't specify -f so I can't furble. " Ricorda che non possiamo ' vedere ciò che puoi vedere, quindi dirci tutto è importante. Nel tuo caso specifico, se ci dicessi il messaggio di errore potremmo essere in grado di consigliarti come evitare di attivarlo in primo luogo, piuttosto che doverlo scartare.

Risposta

Se il comando non ha unopzione silenziosa, reindirizza lerrore a / dev / null.

oidvalue=$(snmpget -v 2c -c public localhost 1234 2>/dev/null) 

Commenti

  • Grazie, ma ho scoperto che quello di cui avevo bisogno era in realtà qualcosa del genere, $ (snmpget -v 2c -c public localhost 1234 2 > & 1 > / dev / null)
  • sei sicuro? questo imposterà oidvalue al messaggio di errore, lo stdout verrà risucchiato da / dev / null. 2 > & 1 non ha effetto.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *