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:
- Comprendere le basi dello stato di uscita:
- Impara cos’è uno stato di uscita e perché è il modo in cui un comando segnala successo o fallimento.
-
Esplora gli stati di uscita più comuni (0 per il successo, diverso da zero per gli errori) e come vengono interpretati.
-
Interpretare gli exit code:
- Impara a leggere e comprendere i diversi exit code restituiti dai comandi di sistema.
-
Approfondisci le convenzioni standard e i significati specifici associati a determinati exit code.
-
Esempi pratici di cattura:
- Comprendi come si cattura l’exit code di un comando con
$?e come opzioni qualiset -o pipefaillo modificano, così da chiedere alla macchina la tecnica giusta e riconoscerla nel suo output. -
Analizza gli script generati su tue istruzioni e valuta se gestiscono e rispondono correttamente a ciascuno stato di uscita.
-
Esecuzione condizionale in base allo stato di uscita:
- 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.
-
Esamina le tecniche avanzate di gestione degli errori proposte dalla macchina e individua controlli deboli o mancanti.
-
Scenari di scripting reali:
-
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.
-
Best practice:
- 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.
- 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
