dgt_bash03 – Stato di uscita dei comandi

Titolo del modulo: dgt_bash03 – Stato di uscita dei comandi


Panoramica del modulo:
In questo modulo studierai a fondo come funzionano gli stati di uscita (exit status) dei comandi in Bash e come gli script li utilizzano. È pensato per chi ha già una conoscenza di base di Linux e Bash e tratta il modo in cui gli exit code vengono prodotti, interpretati e usati per guidare il flusso di uno script.

Come in tutta l’academy, prima viene la teoria e la pratica si svolge tassativamente in linguaggio naturale: non scriverai script a mano. Descriverai alla macchina, a parole, come uno script deve reagire al successo e al fallimento, poi leggerai il codice che propone, controllerai dove verifica uno stato di uscita o abilita pipefail e accerterai, eseguendolo, che ogni percorso di errore si comporti davvero come hai chiesto.

Obiettivi di apprendimento principali:

  1. Comprendere le basi dello stato di uscita:
  2. Impara cos’è uno stato di uscita e perché è il modo in cui un comando segnala successo o fallimento.
  3. Esplora gli stati di uscita più comuni (0 per il successo, diverso da zero per gli errori) e come vengono interpretati.

  4. Interpretare gli exit code:

  5. Impara a leggere e comprendere i diversi exit code restituiti dai comandi di sistema.
  6. Approfondisci le convenzioni standard e i significati specifici associati a determinati exit code.

  7. Esempi pratici di cattura:

  8. Comprendi come si cattura l’exit code di un comando con $? e come opzioni quali set -o pipefail lo modificano, così da chiedere alla macchina la tecnica giusta e riconoscerla nel suo output.
  9. Analizza gli script generati su tue istruzioni e valuta se gestiscono e rispondono correttamente a ciascuno stato di uscita.

  10. Esecuzione condizionale in base allo stato di uscita:

  11. Impara come le istruzioni condizionali (ad es. if-else) permettono a uno script di agire in base al successo o al fallimento dei comandi, e descrivi questa logica con precisione in linguaggio naturale.
  12. Esamina le tecniche avanzate di gestione degli errori proposte dalla macchina e individua controlli deboli o mancanti.

  13. Scenari di scripting reali:

  14. Affronta scenari reali in cui gli exit code sono cruciali, come backup automatici, attività di manutenzione del sistema e processi di deploy, istruendo la macchina e verificando che i fallimenti vengano rilevati e segnalati.

  15. Best practice:

  16. Impara le best practice che rendono gli script affidabili e manutenibili grazie a un uso corretto degli stati di uscita, e richiedile esplicitamente nelle tue istruzioni.
  17. Chiedi commenti che documentino gli stati di uscita attesi e verifica che corrispondano a ciò che il codice fa davvero.

Contenuti del modulo:

  • Introduzione agli exit code:
    Una guida alle basi degli exit code nei sistemi Unix-like, che copre sia la teoria sia le sue implicazioni pratiche.

  • Catturare e usare gli exit code:
    Spiegazioni passo per passo delle tecniche che Bash offre per catturare gli exit code, così da riconoscerle negli script scritti dalla macchina e spiegare quando ciascuna è appropriata.

  • Esempi pratici:

  • Script di esempio (richiesti in linguaggio naturale, poi revisionati):

    • Esecuzione di comandi semplici: Scenari che verificano il successo di comandi di base.
    • Gestione degli errori: Strategie di gestione degli errori che catturano gli stati di uscita diversi da zero e reagiscono di conseguenza.
    • Workflow complessi: Script in cui più comandi sono concatenati, garantendo che ogni passo venga eseguito solo quando l’esito precedente lo consente.
  • Esercizi in linguaggio naturale:
    Esercizi pratici in cui istruisci la macchina a costruire e correggere script Bash basati sugli stati di uscita, provochi deliberatamente dei fallimenti e verifichi che i suoi script reagiscano esattamente come hai specificato.

Destinatari:
Questo modulo è rivolto ad amministratori di sistema, professionisti DevOps, sviluppatori e altri utenti di Bash, con particolare attenzione all’uso pratico degli stati di uscita dei comandi.

Al termine di questo modulo, i partecipanti comprenderanno come gli stati di uscita rendono affidabili gli script Bash, e sapranno guidare la macchina a produrre script di questo tipo e verificarli.
Gli studenti possono caricare i propri esercizi nel Progetto Git dell’Academy DevOps & SRE. Per questo modulo, crea una cartella con il tuo username come nome nella seguente sottocartella: https://github.com/Garanti-Del-Talento/gdt_academy