logo

Bash Se

In questo argomento, capiremo come utilizzare se dichiarazioni negli script Bash per completare le nostre attività automatizzate.

Bash se le dichiarazioni sono utili. Sono utilizzati per eseguire attività condizionali nel flusso sequenziale di esecuzione delle istruzioni. Le istruzioni Se di solito ci consentono di prendere decisioni nei nostri script Bash. Ci aiutano a decidere se eseguire o meno un pezzo di codice in base alla condizione che possiamo impostare.

Istruzioni if ​​di base

Un'istruzione if di base comanda che se una particolare condizione è vera, viene eseguito solo un determinato insieme di azioni. Se non è vero, non eseguire tali azioni. Se l'istruzione si basa sul seguente formato:

Sintassi

 if [ expression ]; then statements fi 

La dichiarazione tra Poi E Essere (Se all'indietro) verrà eseguito solo se l'espressione (tra parentesi quadre) è vera.

Nota:Osservare gli spazi utilizzati nella prima riga e il punto e virgola alla fine della prima riga; entrambi sono obbligatori da utilizzare.Se istruzione condizionalefinisce conEssere.

  • Per utilizzare più condizioni con l'operatore AND:
 if [ expression_1 ] && [ expression_2 ]; then statements fi 
  • Per utilizzare più condizioni con l'operatore OR:
 if [ expression_1 ] || [ expression_2 ]; then statements fi 
  • Per le espressioni composte con operatori AND e OR, possiamo utilizzare la seguente sintassi:
 if [ expression_1 && expression_2 || expression_3 ]; then statements fi 

Di seguito sono riportati alcuni esempi che dimostrano l'utilizzo dell'istruzione if:

Esempio 1

In questo esempio, prendi un input dall'utente di qualsiasi numero e controlla se il valore è maggiore di 125.

 #!/bin/bash read -p ' Enter number : ' number if [ $number -gt 125 ] then echo 'Value is greater than 125' fi 

Produzione

Se inseriamo il numero 159, l'output sarà simile a:

Bash If Istruzione

Esempio 2

In questo esempio, dimostriamo l'utilizzo di se dichiarazione con un semplice scenario di confronto di due stringhe:

 #!/bin/bash # if condition is true if [ 'myfile' == 'myfile' ]; then echo 'true condition' fi # if condition is false if [ 'myfile' == 'yourfile' ]; then echo 'false condition' fi 

Produzione

Bash If Istruzione

Esempio 3

In questo esempio, dimostriamo come confrontare i numeri utilizzando l'istruzione if:

 #!/bin/bash #if condition (greater than) is true if [ 10 -gt 3 ]; then echo '10 is greater than 3.' fi #if condition (greater than) is false if [ 3 -gt 10 ]; then echo '3 is not greater than 10.' fi #if condition (lesser than) is true if [ 3 -lt 10 ]; then echo '3 is less than 10.' fi #if condition (lesser than) is false if [ 10 -lt 3 ]; then echo '10 is not less than 3.' fi #if condition (equal to) is true if [ 10 -eq 10 ]; then echo '10 is equal to 10.' fi #if condition (equal to) is false if [ 10 -eq 9 ]; then echo '10 is not equal to 9' fi 

Produzione

Bash If Istruzione

Esempio 4

In questo esempio, definiremo come utilizzare l'operatore AND per includere più condizioni nell'espressione if:

 #!/bin/bash # TRUE && TRUE if [ 8 -gt 6 ] && [ 10 -eq 10 ]; then echo 'Conditions are true' fi # TRUE && FALSE if [ 'mylife' == 'mylife' ] && [ 3 -gt 10 ]; then echo 'Conditions are false' fi 

Produzione

Bash If Istruzione

Esempio 5

In questo esempio, definiremo come utilizzare l'operatore OR per includere più condizioni nell'espressione if:

 #!/bin/bash # TRUE || FALSE if [ 8 -gt 7 ] || [ 10 -eq 3 ]; then echo ' Condition is true. ' fi # FALSE || FALSE if [ 'mylife' == 'yourlife' ] || [ 3 -gt 10 ]; then echo ' Condition is false. ' fi 

Produzione

Bash If Istruzione

Esempio 6

In questo esempio, definiremo come utilizzare AND e OR per includere più condizioni nell'espressione if:

 #!/bin/bash # TRUE && FALSE || FALSE || TRUE if [[ 10 -eq 10 && 5 -gt 4 || 3 -eq 4 || 3 -lt 6 ]]; then echo 'Condition is true.' fi # TRUE && FALSE || FALSE if [[ 8 -eq 8 && 8 -gt 10 || 9 -lt 5 ]]; then echo 'Condition is false' fi 

Produzione

Bash If Istruzione

Opzioni per l'istruzione If in Bash Scripting

L'istruzione Se contiene molte opzioni per eseguire un'attività specifica. Queste opzioni possono essere utilizzate per operazioni su file, operazioni su stringhe, ecc. Di seguito sono riportate alcune opzioni maggiormente utilizzate:

-
Opzioni (Operatori) Descrizione
! ESPRESSIONE Per verificare se EXPRESSION è falso.
-n STRINGA Per verificare se la lunghezza di STRING è maggiore di zero.
-z STRINGA Per verificare se la lunghezza di STRING è zero (ovvero è vuota)
STRINGA1 == STRINGA2 Per verificare se STRINGA1 è uguale a STRINGA2.
STRINGA1 != STRINGA2 Per verificare se STRINGA1 non è uguale a STRINGA2.
INTERO1 -eq INTERO2 Per verificare se INTEGER1 è numericamente uguale a INTEGER2.
INTERO1 -gt INTERO2 Per verificare se INTEGER1 è numericamente maggiore di INTEGER2.
INTERO1 -lt INTERO2 Per verificare se INTEGER1 è numericamente inferiore a INTEGER2.
-d FILE Per verificare se FILE esiste ed è una directory.
-e FILE Per verificare se FILE esiste.
-rFILE Per verificare se FILE esiste e viene concessa l'autorizzazione di lettura.
-sFILE Per verificare se FILE esiste e la sua dimensione è maggiore di zero (il che significa che non è vuoto).
-wFILE Per verificare se FILE esiste e l'autorizzazione di scrittura è concessa.
xFILE Per verificare se FILE esiste e viene concessa l'autorizzazione di esecuzione.

Nidificato se

Puoi applicare tutte le 'istruzioni if' richieste all'interno del tuo script bash. È anche possibile utilizzare un'istruzione if all'interno di un'altra 'istruzione if'. È noto come istruzione Nested If.

Esempio

In questo esempio, troveremo 'se un dato numero è maggiore di 50 e se è un numero pari' utilizzando l'espressione if nidificata.

 #!/bin/bash #Nested if statement if [ $1 -gt 50 ] then echo 'Number is greater than 50.' if (( $1 % 2 == 0 )) then echo 'and it is an even number.' fi fi 

Produzione

Se inseriamo un valore di argomento pari a 100, l'output sarà simile a:

Bash If Istruzione

Conclusione

In questo argomento abbiamo discusso di come utilizzare la ramificazione condizionale nel flusso sequenziale di esecuzione delle istruzioni con l'istruzione bash if.