Menu
Coddy logo textTech

Errore standard

Fa parte della sezione Fondamenti del percorso Terminal di Coddy. Lezione 41 di 82.

Il terzo e ultimo flusso di dati è standard error, abbreviato in stderr. Questo flusso è specificamente dedicato ai messaggi di errore e agli avvisi, mantenendoli separati dall'output normale.

Quando un comando non riesce, il messaggio di errore viene inviato allo standard error, non allo standard output:

ls nonexistent_folder

Il messaggio di errore che vedi arriva tramite stderr. Questa separazione è importante perché puoi reindirizzare gli errori indipendentemente dall'output normale.

Per reindirizzare l'errore standard, usa 2> invece di >:

ls nonexistent_folder 2> errors.txt

Il 2 si riferisce al numero del descrittore di file di stderr (stdout è 1, stderr è 2). Questo comando acquisisce il messaggio di errore in errors.txt mantenendo pulito il terminale.

Puoi reindirizzare entrambi i flussi verso file diversi:

ls existing_folder nonexistent_folder > output.txt 2> errors.txt

L'output riuscito va in output.txt, mentre eventuali errori vanno in errors.txt. Per inviare entrambi i flussi allo stesso file, usa 2>&1:

ls existing_folder nonexistent_folder > all_output.txt 2>&1

Questo reindirizza stderr dove è diretto stdout, combinando tutto in un unico file.

challenge icon

Sfida

Facile

Usa l'operatore 2> per reindirizzare un messaggio di errore a un file. Esegui questi due comandi in ordine:

  1. Prova a elencare una cartella chiamata missing_folder usando ls e reindirizza il messaggio di errore a un file chiamato errors.txt
  2. Usa cat per visualizzare il contenuto di errors.txt

Suggerimento: Il formato è ls foldername 2> filename. Il messaggio di errore viene inserito nel file invece di apparire sullo schermo. Usa cat per verificare che sia stato acquisito.

Provalo tu

Terminale
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Playground Terminal