Istruzione if
Fa parte della sezione Fondamenti del percorso Terminal di Coddy. Lezione 70 di 82.
Finora, i tuoi script eseguono ogni comando dall'alto verso il basso senza prendere decisioni. Ma cosa succede se vuoi che il tuo script faccia cose diverse in base a determinate condizioni? È qui che entra in gioco l'istruzione if.
L'istruzione if consente al tuo script di prendere decisioni. Verifica se una condizione è vera e, in tal caso, esegue un blocco di codice. Ecco la struttura di base:
#!/bin/bash
age=18
if [ $age -ge 18 ]; then
echo "You are an adult"
fiLa condizione va tra parentesi quadre, con spazi intorno. La parola chiave then indica l’inizio del codice da eseguire e fi (if scritto al contrario) termina l’istruzione.
Puoi anche gestire il caso in cui la condizione è falsa usando else:
#!/bin/bash
age=15
if [ $age -ge 18 ]; then
echo "You are an adult"
else
echo "You are a minor"
fiGli operatori di confronto comuni per i numeri includono -eq (uguale), -ne (diverso), -gt (maggiore di), -lt (minore di), -ge (maggiore o uguale), e -le (minore o uguale). Per le stringhe, usa = per l’uguaglianza e != per la disuguaglianza.
Ricorda di includere sempre spazi all'interno delle parentesi e di racchiudere tra virgolette le variabili per evitare errori con valori vuoti.
Sfida
FacileCrea uno script shell chiamato check_score.sh che usi un'istruzione if per valutare un punteggio di un test.
Il tuo script dovrebbe:
- Iniziare con la riga shebang (
#!/bin/bash) - Creare una variabile chiamata
scorecon il valore75 - Usare un'istruzione if per verificare se il punteggio è maggiore o uguale a 70
- Se è vero, stampare:
You passed! - Se è falso, stampare:
You failed.
Rendi eseguibile lo script ed eseguilo. Poiché il punteggio è 75, l'output dovrebbe essere:
You passed!Suggerimento: Ricorda di usare
-geper il confronto «maggiore o uguale a», di includere spazi all'interno delle parentesi quadre e di terminare l'istruzione if confi.Qui non c'è un editor di file, quindi scrivi il file direttamente dalla shell usando un here-document: digita
cat > check_score.sh << 'EOF', poi le righe dello script e infine una riga contenente soloEOF.
Provalo tu
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Cartelle
Creare una cartellaCopiare una cartellaSpostare e rinominare una cartellaEliminare una cartellaRiepilogo - Operazioni sulle cartelle7Contenuto dei file
Head e TailConteggio delle paroleComando SortComando UniqueNozioni di base su GrepGrep con opzioniRiepilogo - Detective del testo10Progetto di analisi dei log
Panoramica del progettoVisualizzare il file di log13Basi dello scripting shell
Che cos’è uno script shellCreare ed eseguire uno scriptVariabili negli scriptInput dell’utente negli scriptIstruzione ifCiclo forCiclo whileRiepilogo: indovina il numero2Navigazione
Stampare la directory di lavoroElencare i fileCambiare directoryPercorsi assoluti e relativiDirectory home e radiceRiepilogo - Trova la tua strada5Progetto di organizzazione delle foto
Panoramica del progettoCreazione della struttura8Reindirizzamento
Uscita standardSovrascrivere un fileAccodare a un fileIngresso standardErrore standardRiepilogo - Creare un log3File
Creare un fileLeggere un fileCopiare un fileSpostare e rinominare un fileEliminare un fileRipasso: operazioni sui file6Caratteri jolly e pattern
Il carattere jolly asteriscoIl carattere jolly punto interrogativoCaratteri jolly tra parentesi quadreCombinare i caratteri jollyRiepilogo - Operazioni selettive9Pipe
Che cos'è una pipeConcatenare due comandiConcatenare più comandiPipe con grepRiepilogo - pipeline dei datiEsercitati da solo: Playground Terminal