Utilizzo dell'istruzione if...else in Bash per l'esecuzione di codice condizionale.
Bash (Bourne Again Shell) è un prompt dei comandi della shell e un linguaggio di scripting nei sistemi operativi GNU/Linux. È la shell predefinita per la maggior parte delle distribuzioni Linux.
Le istruzioni condizionali sono vitali in qualsiasi linguaggio di programmazione, sia compilato che scriptato. Consentono all'utente di eseguire un pezzo di codice in base a una condizione predefinita, che è uno dei fondamenti della logica di programmazione. In questo articolo impareremo come usare il se altro
dichiarazione condizionale in Bash.
introduzione
Il se altro
L'istruzione in Bash consente all'utente di manipolare il flusso del codice in base alle condizioni. L'utente può specificare blocchi di codice separati da eseguire, solo uno dei quali verrà infine eseguito durante il runtime, in base alla condizione corrispondente soddisfatta.
Si noti che possono essere specificate più di due condizioni, per le quali elifa
dichiarazione può essere utilizzata. L'utente può fornire un numero qualsiasi di condizioni utilizzando elifa
, e infine una condizione predefinita usando altro
bloccare. Vediamo di più su questo nella sintassi e negli esempi di seguito.
Sintassi generale
La sintassi generale per se altro
l'affermazione in Bash è:
se poi altro fi
Qui, se il soddisfa, cioè, se restituisce 0 (successo), viene eseguito il blocco di codice 1. Se la condizione non restituisce 0, ovvero restituisce uno stato di errore, viene eseguito il blocco di codice 2. Il
se altro
il blocco termina con a fi
dichiarazione.
Per più blocchi corrispondenti a più condizioni,elifa
si usa:
se poi elif allora elif allora ... ... altro fi
Qui le condizioni vengono verificate nell'ordine e viene eseguito il blocco di codice della prima condizione che restituisce lo stato 0 (successo). Per esempio. Se Se nessuna delle condizioni restituisce lo stato 0, Nota che il Per eseguire un blocco di codice se una variabile ha un valore particolare: Per controllare più valori: Le condizioni possono essere qualsiasi comando Linux. Il blocco di codice corrispondente verrà eseguito se il comando viene eseguito correttamente. Nell'esempio sopra, poiché Possiamo anche nidificare un altro Ciò è utile quando è necessario verificare un insieme separato di condizioni una volta soddisfatta una condizione iniziale. Ad esempio, il codice seguente tenta di installare un software per server Web: Il codice verifica prima se Nginx è già installato nel sistema. Se lo è, visualizza solo un messaggio ed esce. In caso contrario, tenta di installare Nginx. Se per qualche motivo, Nginx non può essere installato nel sistema dal pacchetto, prova a installare Apache2. Se anche Apache2 dà errore durante l'installazione, esce visualizzando un messaggio che non è stato possibile installare alcun software. In modo simile, un blocco annidato può essere utilizzato all'interno di un Simile a qualsiasi codice Bash, il L'utente può anche salvare questo codice in un file di script ed eseguire il file di script. Il Per dare i permessi di esecuzione per questo file, esegui: Infine, per eseguire il file, esegui: Simile a qualsiasi linguaggio di programmazione, restituisce uno stato diverso da zero (fallimento), quindi
è controllato. Se
restituisce lo stato 0,
viene eseguito. Successivamente, non vengono verificate ulteriori condizioni e l'esecuzione del codice continua al codice dopo il
fi
dichiarazione. nel blocco else viene eseguito. Nota che il blocco else è facoltativo. Se nessuna condizione è soddisfatta, così come no
altro
blocco è specificato, non verrà eseguito alcun blocco di codice condizionale e l'esecuzione del codice continuerà fino al codice dopo il fi
dichiarazione, come mostrato nel diagramma di flusso sottostante.poi
l'istruzione deve essere utilizzata solo dopo Se
e elifa
dichiarazioni e non richiesto dopo il altro
dichiarazione.Esempi
x=0 if [ $x -eq 0 ] then echo "Il valore di X è 0" else echo "Il valore di X non è 0" fi
x=2 if [ $x -eq 0 ] then echo "Il valore di X è 0" elif [ $x -eq 1 ] then echo "Il valore di X è 1" elif [ $x -eq 2 ] then echo "Valore di X è 2" else echo "Il valore di X non è 0" fi
if npm -v allora echo "NPM presente nel sistema" altrimenti sudo apt install npm fi
npm
non è stato installato nel sistema, il comando npm -v
restituito uno stato diverso da zero. Quindi, l'esecuzione del codice è andata in altro
block, dove installiamo npm usando adatto
gestore di pacchetti. Come possiamo vedere, mi ha chiesto di inserire la password e ha iniziato l'installazione di npm.se altro
blocco all'interno di un Se
, altro
o elifa
bloccare:x=0 y=1 if [ $x -eq 0 ] then echo "X è 0" if [ $y -eq 1 ] then echo "Y è 1" else echo "Y non è 1" fi else echo "X è non 0" fi
se nginx -v allora echo "NGINX è già installato." altrimenti se sudo apt install nginx allora echo "Installazione NGINX riuscita". elif sudo apt install apache2 then echo "Installazione di APACHE2 riuscita." else echo "Impossibile installare alcun software Web." fi
elifa
blocco pure.in esecuzione
se altro
: Script e riga di comandose altro
L'istruzione può essere utilizzata nella shell Bash direttamente o da un file script eseguibile della shell. Una volta che l'interprete Bash trova un Se
, altro
o elifa
istruzione, continua la shell per consentire all'utente di inserire il blocco di codice.#!/bin/bash
all'inizio specifica l'interprete da utilizzare quando viene eseguito il file. Sebbene Bash sia la shell più comunemente usata al giorno d'oggi, alcuni utenti preferiscono shell come zsh, che dovrebbero essere specificate al posto di bash all'inizio di questo file.chmod +x test.sh
./test.sh
Conclusione
se altro
è una caratteristica fondamentale di Bash. Imparare il suo uso fa molto per scrivere script di base e avanzati.