Ho un comando rm *.o
in Makefile
per rimuovere tutti i file oggetto generati durante la compilazione. Tuttavia, alcune informazioni di errore verranno emesse se alcuni file .o
non esistono. Quindi, come posso sopprimere l'output delle informazioni di errore?Shell - Soppressione dell'output di un singolo comando
risposta
Nel contesto di make
, più importante dell'output, non si desidera rendere il risultato di rm
come errore. Ci sono due modi per affrontarla:
clean:
-rm *.o 2> /dev/null
rm -f *.o 2> /dev/null
Il primo modo è quello di precedere il comando con un segno meno, che racconta make
di ignorare il codice di ritorno. Questo è il modo preferito, make
-specifico. Il secondo è utilizzare il flag -f
, che è specifico solo per rm
.
Oltre a questo, è possibile scegliere di sopprimere l'output con 2> /dev/null
o no.
rm -f *.o
o
rm *.o >& /dev/null
In rari casi, può anche essere necessario reindirizzare l'output /dev/null
. Probabilmente vuoi fare rm *.o > /dev/null 2>&1
. La parte > /dev/null
invia lo stdout a /dev/null
e lo 2>&1
dice di inviare stderr ovunque stdout stia andando.
Non credo che 'rm' utilizzi l'output standard. – chepner
Dipende se rm è stato sostituito da rm -v. La maggior parte dei sistemi non lo fa più, probabilmente è un'abitudine che ho imparato da molto tempo fa, quando qualche distro pensava che fosse una buona idea. – Steve
Vedo che la pagina man BSD menziona implementazioni storiche richiedere sullo standard output. – chepner
- 1. Esegui un singolo comando nello script di shell senza sudo
- 2. Soppressione dell'output di un comando in R
- 3. Esecuzione di due server di nodi da un singolo comando shell utilizzando uno script di shell
- 4. Esecuzione di un comando shell
- 5. Hbase put comando shell
- 6. come leggere un singolo carattere nello script di shell
- 7. Assegnazione di valori predefiniti alle variabili di shell con un singolo comando in bash
- 8. Esecuzione di un comando shell da gulp
- 9. Linee di comando shell Spark
- 10. Output dell'ultimo comando shell
- 11. meteorJS chiama un comando shell dal server
- 12. Eseguire un comando shell da un'applicazione .NET
- 13. Grafite: serie multiple con un singolo comando
- 14. Eseguire una shell di comando Django dalla riga di comando
- 15. Controllare l'output di un comando nello script di shell
- 16. Stampa il tempo di esecuzione di un comando shell
- 17. Come posso catturare l'output di un comando di pry shell?
- 18. Eseguire un comando shell da uno script di shell senza fermarsi, se si verifica un errore
- 19. Comando shell Emacs sul buffer
- 20. Shell script: Esegui comando dopo l'esecuzione di "uscita" comando nella shell script
- 21. Attendere comando di shell per completare
- 22. Comando di shell che inizia con ">"
- 23. Soppressione dell'output di funzione
- 24. Eseguire una shell di comando a Jenkins
- 25. Ottieni l'output di un comando shell in VB.net
- 26. Utilizzare l'output di un comando shell come variabile
- 27. Ottieni l'output di un comando shell in node.js
- 28. Desidero richiamare un comando di shell linux da Java
- 29. Esegue un array di stringhe descrivendo il comando shell
- 30. checkstyle + filtri di soppressione
Devi stare attento con '> &' notazione. Funzionerà bene in 'bash', ma non funziona in' dash'. Dato che 'dash' è perfettamente valido dato i tag nella domanda, non è appropriato usare'> & '. –