GNU/Linux >> Linux Esercitazione >  >> Linux

Come sapere se l'output di un comando o di uno script di shell è Stdout o Stderr?

Diciamo che eseguo un comando o uno script di shell e mi dà un output. Senza conoscere gli interni di questo comando o script di shell, come si fa a determinare se l'output proveniva da stderr o stdout ?

Ad esempio,

$ ls -ld /
drwxrwxr-t  35 root  admin  1258 Dec 11 19:16 /

contro

ls -ld /test
ls: /test: No such file or directory

Come posso accertare che il primo comando sia stato stampato su stdout e il secondo a stderr (è vero?)?

Risposta accettata:

Non c'è modo di dirlo una volta che l'output è già stato stampato. In questo caso, entrambi stdout e stderr sono collegati al terminale, quindi le informazioni su quale stream è stato scritto erano già perse quando il testo è apparso sul tuo terminale; sono stati combinati dal programma prima di arrivare al terminale.

Quello che puoi fare, in un caso come quello sopra, sarebbe eseguire il comando con stdout e stderr reindirizzato a luoghi diversi e guarda cosa succede. Oppure eseguilo due volte, una volta con stdout reindirizzato a /dev/null e una volta con stderr reindirizzato a /dev/null , e guarda in quale di questi casi viene visualizzato il testo.

Puoi reindirizzare stdout a /dev/null virando >/dev/null alla fine della riga di comando e puoi reindirizzare stderr a /dev/null aggiungendo 2>/dev/null .


Linux
  1. Come stampare Stdout di un comando in ordine inverso su una shell Linux

  2. Come eliminare le prime / ultime "n" righe dall'output del comando in Shell?

  3. Come assegnare l'output di un comando a una variabile di shell?

  4. Come memorizzare un comando in una variabile in uno script di shell?

  5. Come reindirizzare stderr e stdout a file diversi nella stessa riga nello script?

Come eseguire il comando / script della shell di Linux in background

Come eseguire i comandi della shell tramite il server HTTP

Come reindirizzare l'output del comando della shell

Come memorizzare un comando Linux come variabile nello script della shell

Come eseguire un comando in uno script della shell?

Reindirizzamento dell'output del comando nella finestra mobile