Come padroneggiare la logica condizionale in Bash

Come Padroneggiare La Logica Condizionale In Bash



L'uso della logica condizionale è una parte essenziale di qualsiasi linguaggio di programmazione. La logica condizionale può essere implementata in Bash in diversi modi per risolvere i problemi di programmazione. In questo tutorial vengono mostrati i metodi per utilizzare la logica condizionale in Bash attraverso i diversi tipi di istruzioni 'if' e 'case' per confrontare stringhe e valori numerici, controllare il contenuto della variabile, verificare l'esistenza del file o della directory, ecc. .

Elenco dei contenuti:

  1. Uso della dichiarazione 'Se'.
  2. Utilizzo della dichiarazione “If-Else”.
  3. Utilizzo della dichiarazione “If-Elif-Else”.
  4. Utilizzo dell'istruzione 'If' per controllare una variabile vuota
  5. Utilizzo dell'istruzione “If” con operatore logico
  6. Utilizzo delle istruzioni “If” nidificate
  7. Utilizzo dell'istruzione 'If' per verificare l'esistenza del file
  8. Utilizzo dell'istruzione 'If' per verificare l'esistenza della directory
  9. Utilizzo dell'istruzione 'If' con Regex
  10. Utilizzo della dichiarazione 'Caso'.

Uso della dichiarazione 'Se'.

Questo esempio mostra il semplice utilizzo dell'istruzione 'if' in Bash. È possibile utilizzare sei tipi di operatori di confronto per confrontare i valori numerici in Bash. Questi sono '-eq' (uguale), '-ne' (non uguale), '-le' (minore di uguale), '-ge' (maggiore di uguale), '-lt' (minore di) e ' -gt” (maggiore di). Gli usi di '-lt' e '-eq' sono mostrati nello script seguente se il numero è inferiore a 99 o non è stato controllato utilizzando l'operatore '-lt'. Il numero è pari o dispari e viene controllato dall'operatore “-eq”.







#!/bin/bash

#Assegnare un valore numerico

( ( numero = cinquanta ) )

#Controlla il valore numerico utilizzando l'istruzione 'if'

Se [ $numero -lt 99 ]

Poi

eco 'Il numero è valido.'

Essere

#Controlla se il numero è pari o meno

Se [ $ ( ( $numero % 2 ) ) -eq 0 ]

Poi

eco 'Il numero è pari.'

Essere

Produzione :



Dopo l'esecuzione dello script precedente viene visualizzato il seguente output:



  p1





Vai all'inizio

Utilizzo della dichiarazione “If-Else”.

L'uso dell'istruzione 'if-else' è mostrato nello script seguente. Un valore stringa viene preso dall'utente e controlla se il valore è 'BLU' o meno utilizzando l'istruzione 'if-else'.



#!/bin/bash

#Prendi un valore stringa dall'utente

Leggere -P 'Inserisci il tuo colore preferito:' colore

#Controlla il valore della stringa utilizzando l'istruzione 'if-else'

Se [ ${colore^^} == 'BLU' ]

Poi

eco 'Bene, il colore blu è disponibile.'

altro

eco ' $colore Non è disponibile.'

Essere

Produzione :

Il seguente output viene visualizzato dopo l'esecuzione dello script precedente se si prende 'rosso' come input:

  p2-1

Il seguente output viene visualizzato dopo l'esecuzione dello script precedente se come input viene preso 'blu':

  p2-2

Vai all'inizio

Utilizzo della dichiarazione “If-Elif-Else”.

L'uso dell'istruzione 'if-elif-else' è mostrato nello script seguente. Un numero viene preso dall'utente e controllato con valori diversi finché non viene trovata una corrispondenza. Se viene trovata una corrispondenza, viene stampato il messaggio corrispondente. Se non viene trovata alcuna corrispondenza, viene stampato il messaggio predefinito.

#!/bin/bash

#Prendi il valore ID dall'utente

Leggere -P 'Inserisci il tuo numero di serie:' seriale

#Controlla il valore immesso utilizzando l'istruzione 'if-elif-else'

Se [ $seriale == '4523' ]

Poi

eco 'Sei selezionato nel gruppo A.'

Elif [ $seriale == '8723' ]

Poi

eco 'Sei selezionato nel girone B.'

Elif [ $seriale == '3412' ]

Poi

eco 'Sei selezionato nel girone C.'

altro

eco 'Non sei selezionato' .

Essere

Produzione:

Dopo aver eseguito lo script con il valore 8723 viene visualizzato il seguente output:

  p3-1

Dopo aver eseguito lo script con il valore 9078 viene visualizzato il seguente output:

  p3-2

Vai all'inizio

Utilizzo dell'istruzione 'If' per controllare una variabile vuota

Il metodo per verificare se una variabile è vuota senza utilizzare un'istruzione 'if' è mostrato nello script seguente. L'opzione '-z' viene utilizzata nell'istruzione 'if' per eseguire questa attività.

#!/bin/bash

#Prendi il valore ID dall'utente

Leggere -P 'Inserisci il tuo numero di serie:' seriale

#Controlla se la variabile è vuota o meno

Se [ ! -Con $seriale ]

Poi

#Controlla il valore immesso utilizzando l'istruzione 'if-elif-else'

Se [ $seriale == '690' ]

Poi

eco 'Sei selezionato nella squadra-1.'

Elif [ $seriale == '450' ]

Poi

eco 'Sei selezionato nella squadra-2.'

altro

eco 'Non sei selezionato' .

Essere

altro

eco 'Non viene fornito alcun numero di serie.'

Essere

Produzione :

Dopo aver eseguito lo script con il valore 690 viene visualizzato il seguente output:

  p4-1

Il seguente output viene visualizzato dopo l'esecuzione dello script se non viene preso alcun valore di input:

  p4-2

Vai all'inizio

Utilizzo dell'istruzione “If” con operatori logici

Nell'istruzione condizionale Bash possono essere utilizzati tre tipi di operatori logici. Questi sono OR logico (||), AND logico (&&) e NOT logico (!). Un valore di codice viene preso dall'utente. Se il valore di input non è vuoto, il valore viene controllato con due valori di codice utilizzando l'OR logico. Se il valore corrisponde a qualsiasi codice, viene stampato il messaggio corrispondente. Se non viene trovato alcun codice corrispondente, viene stampato il messaggio predefinito.

#!/bin/bash

#Prendi il codice del corso dall'utente

Leggere -P 'Inserisci il codice del corso:' codice

#Controlla se la variabile è vuota o meno

Se [ ! -Con $codice ]

Poi

#Controlla il valore immesso utilizzando l'istruzione 'if-elif-else'

Se [ [ $codice == 'CSE-106' || $codice == 'CSE-108' ] ]

Poi

eco 'Corso CSE.'

Elif [ [ $codice == 'BBA-203' || $codice == 'BBA-202' ] ]

Poi

eco 'Corso BBA.'

altro

eco 'Codice corso non valido.'

Essere

altro

eco 'Non viene fornito alcun codice del corso.'

Essere

Produzione :

Il seguente output viene visualizzato dopo aver eseguito lo script con il valore di input 'CSE-108':

  p5-1

Il seguente output viene visualizzato dopo aver eseguito lo script con il valore di input 'BBA-56':

  p5-2

Vai all'inizio

Utilizzo delle istruzioni “If” nidificate

Quando una condizione 'if' viene utilizzata all'interno di un'altra condizione 'if', viene chiamata istruzione 'if' nidificata. Il metodo per utilizzare l''if' annidato è mostrato nello script seguente. Dall'utente vengono presi due valori di contrassegno. Se i valori di input non sono vuoti, la prima condizione 'se' controlla se il valore di '$teoria' è maggiore o uguale a 60 oppure no. Se la prima condizione “if” restituisce “true”, la seconda condizione “if” controlla se il valore di “$lab” è maggiore o uguale a 50 oppure no. Se anche la seconda condizione “se” restituisce “vero”, viene stampato un messaggio di successo. Altrimenti viene stampato un messaggio di errore.

#!/bin/bash

#Prendi il voto di teoria

Leggere -P 'Inserisci il voto di teoria:' teoria

#Prendi il voto di laboratorio

Leggere -P 'Inserisci il voto di laboratorio:' laboratorio

#Controlla se le variabili sono vuote o meno

Se [ [ ! -Con $teoria && ! -Con $laboratorio ] ]

Poi

#Controlla i valori di input utilizzando un'istruzione 'if' nidificata

Se [ $teoria -ge 60 ]

Poi

Se [ $laboratorio -ge cinquanta ]

Poi

eco 'Sei passato.'

altro

eco 'Hai fallito.'

Essere

altro

eco 'Hai fallito.'

Essere

altro

eco 'Il voto di teoria o di laboratorio è vuoto.'

Essere

Produzione :

Se entrambi o uno dei valori di input sono vuoti, viene visualizzato il seguente output:

  p6-1

Il seguente risultato appare se si prende 78 come voto di teoria e 45 come voto di laboratorio. Qui, la seconda condizione “se” restituisce “falso”:

  p6-2

Il seguente risultato appare se si prende 67 come voto di teoria e 56 come voto di laboratorio. Qui, entrambe le condizioni “se” restituiscono “vero”:

  p6-3

Il seguente risultato appare se si prende 50 come voto di teoria e 80 come voto di laboratorio. Qui, la prima condizione “se” restituisce “falso”:

  p6-4

Vai all'inizio

Utilizzo dell'istruzione 'If' per verificare l'esistenza del file

L'esistenza del file può essere verificata dallo script bash in due modi. Uno sta usando l'operatore '-f' con parentesi '[]'. Un altro sta usando il comando “test” e l’operatore “-f”. Viene preso un nome file e viene verificata l'esistenza del file utilizzando la condizione 'if' con l'operatore '-f'. Quindi, viene preso un altro nome file e viene verificata l'esistenza del file utilizzando l'istruzione 'if' con il comando 'test' e l'operatore '-f'.

#!/bin/bash

#Prendi il nome del file

Leggere -P 'Inserisci un nome file:' fn1

#Verifica se il file esiste o meno senza utilizzare `test`

Se [ -F $fn1 ]

Poi

eco ' $fn1 il file esiste.'

altro

eco ' $fn1 il file non esiste.'

Essere

#Aggiungi nuova riga

eco

#Prendi un altro nome file

Leggere -P 'Inserisci un altro nome file:' fn2

#Verifica se il file esiste o meno utilizzando `test`

Se test -F $fn2 ; Poi

eco ' $fn2 il file esiste.'

#Controlla se il file è vuoto o meno utilizzando `test`

Se test -Con $fn2 ; Poi

eco ' $fn2 il file è vuoto.'

altro

eco ' $fn2 il file non è vuoto.'

Essere

altro

eco ' $fn2 il file non esiste.'

Essere

Produzione :

Il seguente output viene visualizzato dopo aver eseguito lo script prendendo 'test.txt' e 'testing.txt' come nomi di file. Secondo l'output, entrambi i file esistono nella posizione corrente e il file 'testing.txt' è vuoto:

  p7-1

Il seguente output viene visualizzato dopo aver eseguito lo script prendendo 'f1.txt' e 'test.txt' come nomi di file. Secondo l'output, il file 'f1.txt' non esiste nella posizione corrente e il file 'test.txt' non è vuoto:

  p7-2

Vai all'inizio

Utilizzo dell'istruzione 'If' per verificare l'esistenza della directory

L'esistenza della directory può essere verificata dallo script Bash in due modi come il file. Uno sta usando l'operatore “-d” con parentesi “[]”. Un altro sta usando il comando “test” e l’operatore “-d”. Viene preso un nome di directory e viene verificata l'esistenza della directory utilizzando la condizione 'if' con l'operatore '-d'. Quindi, viene preso un altro nome di directory e viene verificata l'esistenza del file utilizzando l'istruzione 'if' con il comando 'test' e l'operatore '-d'.

#!/bin/bash

#Prendi un nome di directory

Leggere -P 'Inserisci un nome di directory:' tu1

#Verifica se la directory esiste o meno senza utilizzare `test`

Se [ -D $dir1 ]

Poi

eco ' $dir1 la directory esiste.'

altro

eco ' $dir1 la directory non esiste.'

Essere

#Aggiungi nuova riga

eco

#Prendi un altro nome di directory

Leggere -P 'Inserisci un altro nome di directory:' dir2

#Verifica se il file esiste o meno utilizzando `test`

Se test -D $dir2

Poi

eco ' $dir2 la directory esiste.'

altro

eco ' $dir2 la directory non esiste.'

Essere

Produzione :

Il seguente output viene visualizzato dopo aver eseguito lo script con i nomi delle directory 'temp' e 'files'. Secondo l'output, entrambe le directory esistono nella posizione corrente. Quindi, viene eseguito il comando “ls” per verificare il contenuto delle directory:

  p8-1

Il seguente output viene visualizzato dopo aver eseguito lo script con i nomi di directory 'testing' e 'new'. Secondo l'output, entrambe le directory non esistono nella posizione corrente. Quindi, l'output del comando 'ls' mostra che entrambe le directory non esistono:

  p8-2

Vai all'inizio

Utilizzo dell'istruzione 'If' con Regex

Lo script seguente mostra il metodo per convalidare i dati di input utilizzando un'istruzione 'if' con la regex. Qui, due valori di input vengono presi dall'utente e memorizzati nelle variabili '$bookname' e '$bookprice'. La condizione 'if' viene utilizzata nello script per verificare che la variabile '$bookname' contenga tutti i caratteri alfabetici e '$bookprice' contenga un numero.

#!/bin/bash

#Prendi il nome e il prezzo del libro dall'utente

eco -N 'Inserisci il nome del libro:'

Leggere nome del libro

eco -N 'Inserisci il prezzo del libro:'

Leggere prezzo del libro

#Verifica che il nome del libro contenga solo l'alfabeto

Se ! [ [ ' $nomelibro ' =~ [ A-Za-z ] ] ] ; Poi

eco 'Il nome del libro non è valido.'

altro

eco 'Il nome del libro è valido.'

Essere

#Verifica che il prezzo del libro contenga solo cifre

Se ! [ [ ' $prezzo del libro ' =~ [ 0 - 9 ] ] ] ; Poi

eco 'Il prezzo del libro può contenere solo cifre.'

altro

eco 'Il prezzo del libro è valido.'

Essere

Produzione :

Il seguente output appare dopo aver eseguito lo script con i valori di input di 'Bash Programming' come nome del libro e 78 come prezzo del libro:

  p9-1

Dopo aver eseguito lo script, viene visualizzato il seguente output con i valori di input 90 come nome del libro e 'Bash' come prezzo del libro:

  p9-2

Vai all'inizio

Utilizzo della dichiarazione 'Caso'.

L'istruzione 'case' è l'alternativa all'istruzione 'if-elif-else', ma tutte le attività dell'istruzione 'if-elif-else' non possono essere eseguite utilizzando l'istruzione 'case'. Il semplice utilizzo dell'istruzione 'case' è mostrato nello script seguente. L'utente riceve un valore numerico come valore del mese corrente. Quindi, viene stampato il mese corrispondente se viene trovato un valore corrispondente nell'istruzione 'case'. Altrimenti, viene stampato il messaggio predefinito.

#!/bin/bash

#Prendi il valore del mese corrente in numero

Leggere -P 'Inserisci il mese di oggi in numero:' b_mese

#Stampa il testo prima di stampare il nome del mese

eco -N 'Il nome del mese corrente è '

#Trova e stampa il nome del mese corrispondente in base all'input

caso $b_mese In

1 | 01 ) eco 'Gennaio.' ;;

2 | 02 ) eco 'Febbraio.' ;;

3 | 03 ) eco 'Marzo.' ;;

4 | 04 ) eco 'Aprile.' ;;

5 | 05 ) eco 'Maggio.' ;;

6 | 06 ) eco 'Giugno.' ;;

7 | 07 ) eco 'Luglio.' ;;

8 | 08 ) eco 'Agosto.' ;;

9 | 09 ) eco 'Settembre.' ;;

10 ) eco 'Ottobre.' ;;

undici ) eco 'Novembre.' ;;

12 ) eco 'Dicembre.' ;;

* ) eco 'non trovato.' ;;

esac

Produzione :

Dopo aver eseguito lo script con il valore 6 viene visualizzato il seguente output:

  p10-1

Dopo aver eseguito lo script con il valore 09 viene visualizzato il seguente output:


  p10-2

Dopo aver eseguito lo script con il valore 14 viene visualizzato il seguente output:

  p10-3

Vai all'inizio

Conclusione

Nei 10 esempi di questo tutorial vengono mostrati diversi usi della logica condizionale utilizzando le istruzioni 'if' e 'case'. Il concetto di utilizzo della logica condizionale in Bash verrà chiarito ai nuovi utenti Bash dopo aver letto questo tutorial.